home *** CD-ROM | disk | FTP | other *** search
/ Ian & Stuart's Australian Mac: Not for Sale / Another.not.for.sale (Australia).iso / hold me in your arms / Media Lab / Papers / Agents Julia.mss next >
Text File  |  1994-10-08  |  105KB  |  2,255 lines

  1. @Comment{ -*- Mode: Scribe -*- }
  2.  
  3. @Comment{This document is in NSage/Concordia format, a variant of Scribe
  4. format for the Symbolics Lisp Machine.}
  5.  
  6. @Comment{This document is "Agents Memo 93-01", available from the Agents
  7. Group, MIT Media Lab.  Copyright (C) May 1993 by Leonard N. Foner.  Permission
  8. to redistribute for academic purposes granted provided that this notice is not
  9. removed.  Author's address:  [electronic] <foner@media.mit.edu>, [physical]
  10. MIT Media Laboratory, E15-305, 20 Ames St, Cambridge, MA 02139.}
  11.  
  12. @NewPage()
  13. @Comment{
  14. There must be a Set Page 1 command immediately after this @NewPage in
  15. the Concordia markup.  The NewPage makes the Concordia record heading
  16. get emitted on the prior page, so it can be thrown away, and the Set
  17. Page 1 then fixes up the page numbering so this isn't obvious.
  18. }
  19.  
  20. @MajorHeading(What's An Agent, Anyway?)
  21. @MajorHeading(A Sociological Case Study)
  22.  
  23. @MajorHeading(Leonard N. Foner)
  24.  
  25. @Begin(Quotation)
  26. @b(Abstract.)  The term "agent" has been picked up, widely appropriated,
  27. and in many cases misappropriated, by technical publications, lay
  28. publications, and many researchers in computer science.  I examine some
  29. of the appropriations and misappropriations, talk about their reasons
  30. and implications, and delve into a case study of an agent that is used
  31. to illustratively define what @i(I) consider an agent to be, and why
  32. many of the current uses of the term are misleading.  The agent I
  33. consider is @i(Julia), a TinyMUD robot of the Maas-Neotek family, all of
  34. whom have been in almost constant use at several sites on the Internet
  35. for the last two or three years.  I also speak at length about the
  36. sociology of such agents, what we might expect to find in the future,
  37. and why sociology is such an important aspect to consider when
  38. investigating agent-oriented programming.@Foot{This document is "Agents Memo
  39. 93-01", available from the Agents Group, MIT Media Lab.  Copyright (C) May
  40. 1993 by Leonard N. Foner.  Permission to redistribute for academic purposes
  41. granted provided that this notice is not removed.  Author's address:
  42. [electronic] <foner@media.mit.edu>, [physical] MIT Media Laboratory,
  43. E15-305, 20 Ames St, Cambridge, MA 02139.}
  44. @End(Quotation)
  45.  
  46. @Heading(Agents and appropriation)
  47.  
  48. There has been a flurry of references to "agents" in both the lay and
  49. technical press in recent months.  While the idea of computational
  50. agents that do one's bidding goes back decades,@Foot[Vannevar Bush spoke
  51. of such a thing in the late fifties and early sixties, as did Doug
  52. Englebart.] the explosion of recent press has been astonishing.  Pattie
  53. Maes and her group's work on learning interface agents@Foot[A "learning
  54. interface" agent, as opposed to any other kind of agent, is one that
  55. uses machine-learning techniques to present a pseudo-"intelligent" user
  56. interface in its actions.] has been cited in at least two dozen
  57. publications in the last year or so, many of them lay press (e.g.,
  58. @i[The Los Angeles Times], @i[Mass High Tech] or
  59. semi-technical press (e.g., @i[MacWeek], @i[MacWorld], etc).  A
  60. symposium at MIT on agents and their programming, held in October of
  61. 1992, drew at least a thousand participants.
  62.  
  63. Further, buzzword frenzy has hit the industry as well.  We have, for
  64. example, a Macintosh program called "Magnet", recently released from
  65. No Hands Software, which bills itself as "the first intelligent agent
  66. for the Macintosh".  In fact, the program is essentially a file-finder,
  67. which can locate files matching certain characteristics and perform some
  68. operation on the set, as well as other utilities such as synchronizing
  69. a PowerBook filesystem with that of some "home", stationary Macintosh.
  70.  
  71. We also have "At Your Service", from Bright Star, whose promotional
  72. literature starts with, "Remember the excitement you felt the first time
  73. you turned on a Mac?  Now you can relive the magic and realize its full
  74. potential with At Your Service, the first animated Desk Accessory to
  75. give your Mac a 'human' personality.  At Your Service features
  76. Phil,@Foot[An expensively-produced, ten-minute Apple promo video which
  77. talked about what agent technology might look like twenty years from now
  78. also named its "agent" Phil, a suspicious similarity...] your Personal
  79. Assistant...he talks...he listens...he works for you!"  In fact, this
  80. program is pretty trivial:  it utters a spoken greeting when the Mac is
  81. turned on, issues reminders for preset events, issues alerts when email
  82. arrives, reminds you to stop typing every few minutes to ease hand and
  83. eye strain, contains a screen saver, and so forth.
  84.  
  85. At the Symposium on Agents at MIT in October 1992, Irene Greif of Lotus
  86. presented on a groupware version of Lotus 123 that made collaboration
  87. between multiple spreadsheet users easier.  This is certainly
  88. respectable technology, but I would hardly call it an "agent", and her
  89. presentation had to work fairly hard to force it into the mold of an
  90. "agent-oriented" piece of work.
  91.  
  92. The popular imagination about agents that do our bidding has even
  93. extended to taking attributing human emotional and intentional states,
  94. out of context, to programs and shamelessly running with them.  For
  95. example, consider Michael Shrage's article in @i(The Boston Globe),
  96. March 7, 1993, imported by the Los Angeles Times Syndicate, entitled, "A
  97. New Dimension in Deception".  In this article, Shrage picks up on the
  98. fact that a calendar-scheduling agent may have to decline a proposed
  99. meeting time and propose another to suit its user's tastes.  However, a
  100. simple declination may not be sufficient; the agent might have to "lie"
  101. and "fabricate" a nonexistent appointment to get its peer agent to
  102. reschedule.  Why this is a "new" dimension in deception, whereas using
  103. an answer machine for call-screening is not, is never explained.
  104.  
  105. And perhaps predictably, the same loose talk about
  106. "thinking"@Foot[Section heading, "How Agents Think and Learn", _Mass
  107. High Tech_, Volume 10, Number 23, November 2-15, 1992.] that eventually
  108. disillusioned many about artificial intelligence seems to be cropping up
  109. again in the guise of agents that learn.
  110.  
  111. What is so irresistably attractive about this concept that it has
  112. exploded into faddism in this way?  Why has the press picked up on
  113. agents and produces so many articles about them?  Why have so many
  114. companies suddenly tried to position their products as based on agents,
  115. even when they are manifestly no such thing?
  116.  
  117. An easy answer would be simple fashion.  Fads sell.  But rather than
  118. just leaving it at that, let us examine closely one of the best examples
  119. I know of which seems to be to be a @i(true) agent.  We will then
  120. explore what characteristics I think make up true agents and help us to
  121. distinguish them from imposters, and finally take up the issue again of
  122. what is @i(really) going on in the agents fad.
  123. @NewPage()
  124. @Heading(A prototypical agent:  Julia)
  125.  
  126. @SubHeading(Introduction)
  127.  
  128. This particular agent is called @i(Julia), and was written by Michael
  129. Loren ("Fuzzy") Mauldin (<mlm@@cs.cmu.edu>) at the Center for Machine
  130. Translation at Carnegie-Mellon University.  Julia is actually the
  131. crowning example of a whole class of similar agents, called
  132. @i(Maas-Neotek@Foot[A reference to a multinational corporation from
  133. William Gibson's book _Neuromancer_.] robots), of which @i(Colin) is the
  134. name of the prototypical, unmodified robot (available via anonymous
  135. FTP).
  136.  
  137. Julia is a TinyMUD@Foot[TinyMUD is a type of _mud_, a specific type of
  138. more than a dozen different types of muds.  Muds in general are a type
  139. of multiperson text-based virtual reality.  For more information about
  140. muds, see, for example, Pavel Curtis, "Mudding: Social Phenomena in
  141. Text-Based Virtual Realities", Proceedings of DIAC '92, which is
  142. available via anonymous ftp from
  143. parcftp.xerox.com:pub/MOO/papers/DIAC92.{ps, txt}; or the MUD
  144. frequently-asked-questions list for the Usenet newsgroup rec.games.mud,
  145. available via anonymous ftp from
  146. moebius.math.okstate.edu:/pub/muds/misc/mud-faq.] robot.  She@Foot[I
  147. usually don't anthropomorphize programs, but Julia is an exception.  I
  148. will have more to say about this later.] can run on just about any
  149. TinyMUD, and there is little a priori reason why, with slight
  150. modifications, she couldn't run on most types of muds, be they TinyMUDs,
  151. MOOs, MUSHes, or what-have-you.  She connects as any human player on the
  152. mud would, via a telnet connection---she does
  153. @i(not) run on the mud server itself.  (This is known as a "client
  154. 'bot", as opposed to a "server 'bot", and is based on the distinction
  155. between clients---humans---and servers---the program containing the mud
  156. database.)  Therefore, she does not bog down the server, nor does she
  157. have to be written in a mud programming language such as MUSH; instead,
  158. she is written in C, and runs on a workstation in Pittsburgh.
  159.  
  160. Julia's source code is not available to the general public, because she
  161. has been entered at various times in the Loebner Turing-Test
  162. competition.  However, Fuzzy@Foot[Michael Mauldin's nickname and mud
  163. handle.] claims@Foot[Private communication.] that 85% of Julia's code is
  164. actually the same as Colin, the prototypical robot, and Colin's code is
  165. freely available.@Foot[For example, the robot Xeglin, running on Space
  166. Madness <(riemann.math.okstate.edu, port 6250>) is a slightly-modified
  167. version of Colin.]  Many of the transcripts below were acquired when she
  168. ran on Time Traveller, which ran until recently at
  169. <betz.biostr.washington.edu, port 4096>, but has since ceased
  170. operations.  Julia is currently (as of April 28, 1993) running on at
  171. least DruidMUCK (<freedom.nmsu.edu, port 4201), and perhaps elsewhere on
  172. the Internet as well.@Foot[Since Julia runs on a workstation and telnets
  173. in as a normal character, multiple instantiations of the same code can
  174. run concurrently, each connecting to one particular mud.]
  175.  
  176. @SubHeading(Julia's utility:  simple examples)
  177.  
  178. So what does Julia do?  I'll demonstrate, by example.  A player would
  179. gain access to her numerous talents in exactly the same way that a
  180. player would talk to any other player---by either speaking or gesturing
  181. in the same room, or by paging from somewhere else:
  182.  
  183. @Comment{@Figure[Access]}
  184.  
  185. @Begin(Verbatim)
  186. >page julia
  187. You sent your summons to Julia.
  188. Julia pages from Stevi's Kitchen: "I'm on my way to you, Lenny."
  189. Julia is briefly visible through the mist.
  190. Julia says, "I was called here by Lenny."
  191. You say, "julia?"
  192. Julia says, "Yes?"
  193. You say, "julia?"
  194. Julia nods to Lenny.
  195. [ . . . ]
  196. Julia whispers, "Excuse me, Xerxes is paging me from Connie's place."
  197. Julia walks south to the airship landing field.
  198. Julia has left.
  199. @End(Verbatim)
  200.  
  201. This is a continuing thread in my discussion of Julia:  players interact
  202. with her @i(as if she was another player).  Muds blur the distinction
  203. between players and 'bots (mud slang for a robot---since a mud simulates
  204. a reality, a software-only construct can be as "real" and physical as
  205. anything else, hence even a piece of software with no hardware attached
  206. "in the real world" can be a "robot" in the simulated world).  This is a
  207. great strength of both muds and Julia, and the deliberate blurriness of
  208. the boundaries both enhances Julia's effectiveness and makes her
  209. operation possible.
  210.  
  211. One of Julia's most useful talents is to keep maps of the
  212. interconnections between rooms.  (Note that if multiple copies of Julia
  213. are running on some workstation(s) at Pittsburgh, each one connected to
  214. a different mud, these separate copies of the same code would contain
  215. separate databases.  Thus, rooms, players, and all the other information
  216. that makes a mud unique from all its brethren will not be confused
  217. across multiple instantiations of the same code.)
  218.  
  219. The way to get Julia to help you navigate is to ask her a question, as
  220. usual.
  221.  
  222. @Comment{@Figure[Maps]}
  223.  
  224. @Begin(Verbatim)
  225. You say, "julia, how do I get to electronics den?"
  226. Julia says, "From here, go south, 7, airlock, 9, up, down"
  227.  
  228. Minotaur says, "Julia, how do you get to the gold sector?"
  229. Julia says, "From here, go highport, gold, library"
  230. @End(Verbatim)
  231.  
  232. Since Julia keeps track of various statistics about rooms (rooms being
  233. very important objects in any mud), she can answer certain questions
  234. that might be important to a mudder:
  235.  
  236. @Begin(Verbatim)
  237. You say, "julia, what are the noisiest rooms?"
  238. Julia says, "The 10 noisiest rooms are:"
  239. Julia |  Connie's place averages 613.95 messages per hour
  240. Julia |  Bedroom averages 483.58 messages per hour
  241. Julia |  oops!  SNAFU lounge averages 472.18 messages per hour
  242. Julia |  (> The Hearts Room! averages 416.70 messages per hour
  243. Julia |  Veritech Launch Bay averages 399.12 messages per hour
  244. Julia |  West Corner of the Park averages 397.26 messages per hour
  245. Julia |  Sickbay averages 366.90 messages per hour
  246. Julia |  Inter Temporal Chat Lounge averages 337.66 messages per hour
  247. Julia |  kitchen averages 326.75 messages per hour
  248. Julia |  US Robots averages 315.99 messages per hour
  249.  
  250. You say, "where can we go from here?"
  251. Julia says, "Here are the 13 exits for Kingdom Highport: Customs, Lenny:"
  252. Julia  <highport> goes to Kingdom Highport: Hub.
  253. Julia  <earth> goes to Kingdom Highport: Ticket Counters.
  254. Julia  <south> goes to Kingdom Highport: South Concourse.
  255. Julia  <hub> goes to Kingdom Highport: Hub.
  256. Julia  <s> goes to Kingdom Highport: South Concourse.
  257. Julia  <back> goes to The Inter Nexus.
  258. Julia  <kingdom> goes to Kingdom Highport: Hub.
  259. Julia  <station> goes to Kingdom Highport: Hub.
  260. Julia  <port> goes to Kingdom Highport: Hub.
  261. Julia  <out> goes to The Inter Nexus.
  262. Julia  <up> goes to Kingdom Highport: Hub.
  263. Julia  <d> goes to Kingdom Highport: Ticket Counters.
  264. Julia  <down> goes to Kingdom Highport: Ticket Counters.
  265. Julia done.
  266. @End(Verbatim)
  267.  
  268. @Comment{@Figure[More Maps]}
  269.  
  270. In fact, her navigational skills can be helpful if you're bored, or confused...
  271.  
  272. @Begin(Verbatim)
  273. TheHighMage says, "Julia, I'm bored. Where should I go?"
  274. Julia says, "You should go see gilded door, TheHighMage."
  275. Julia says, "From here, go  present, out, north, n, w, n, up, up, 7, up, up, s."
  276.  
  277. You whisper, "Where should I go?" to Julia.
  278. Julia whispers, "Hmm...you should visit WNDU Main Control Room, Lenny."
  279. Julia whispers, "From here, go  present, out, north, n, n, n, n, n, e, in, in,
  280.     in, east, in."
  281. @End(Verbatim)
  282.  
  283. (Note also that Julia will whisper@Foot[A whisper is a private
  284. communication.  The intended target hears it, but no one else in the
  285. room does.] to you if you whisper to her, hence protecting your privacy
  286. if there was some reason you whispered.  She also tends not to respond
  287. to random conversation or gestures unless they mention her name; unless
  288. they are from a player who was talking to her very recently; or unless
  289. she was the target of a directed communication such as a page or a
  290. whisper:  this helps to prevent her from becoming a pest.  Most 'bots
  291. need similar social skills or they quickly get relegated to the
  292. scrapheap.  Human players without such skills are not so easy to get rid
  293. of.)
  294.  
  295. @Comment{@Figure[Money]}
  296.  
  297. Many muds employ an artifact called money.  (There are even some muds
  298. which are set up to explore alternate economic systems, but I won't
  299. touch on them here.)  For muds which are essentially roleplaying games,
  300. the value of money is obvious.  But why would a mud such as Time
  301. Traveller or DruidMUCK employ money, when there is no RPG system around?
  302.  
  303. To keep the load on the server reasonable, that's why.  In general, the
  304. load on any mud server grows without bound, if the mud is popular.  More
  305. players connect, and the server starts to @i(lag), or get slow, as it
  306. handles the increasing number of events per second.  This problem tends
  307. to correct itself, however, as a very lagged server will tend to lose
  308. players to other servers.  (Lag is psychologically objectionable if it
  309. is too large, and the large number of extant servers mean that there is
  310. something of a freeware-based economy happening---lagged servers, unless
  311. they offer some spectacular value in community or resources [e.g.,
  312. LambdaMOO] tend to be passed over for others.  This is the same
  313. principle that tends to even out queues in a bank or supermarket.)
  314.  
  315. However, there @i(is) a server resource that is @i(not) self-correcting,
  316. and that is database size.  Every time a player builds an object, the
  317. database must contain it.  Left totally unrestricted, players would
  318. eventually outbuild any disk capacity allocated to the database.  (This
  319. unrestricted growth has in fact been the downfall of some muds whose
  320. servers were running on machines that had more "legitimate" user
  321. populations who resented the competition for disk space or CPU cycles.)
  322.  
  323. Certain types of muds, such as MOOs, use a quota system to restrict
  324. building.  Players may build only so many objects, and must then appeal
  325. to some human (a wizard) to get more quota.  If the wizard deems the
  326. already-built objects uninteresting uses of resources, the player cannot
  327. build any more.
  328.  
  329. TinyMUDs, on the other hand, use money.  Building something takes money.
  330. Players can give each other money, and money is often "found" lying
  331. around at some constant rate (which can be adjusted by the wizards).
  332. The rate at which money enters the economy in effect determines its rate
  333. of inflation, and thus how fast the database may grow.
  334.  
  335. In her wanderings around the maze, Julia finds a great deal of money.
  336. She can be quite a bit of help to a new player with few resources:
  337.  
  338. @Begin(Verbatim)
  339. You say, "julia, can you give me some money?"
  340. Julia says, "Sorry, you're too new.  Wait an hour and ask again."
  341. You say, "julia, how much money do you have?"
  342. Julia says, "I have enough pennies"
  343. [ . . . ]
  344. You say, "julia, can you give me money?"
  345. Julia gives you 22 pennies.
  346. You say, "thanks, julia!"
  347. Julia says, "You're welcome, Lenny."
  348. Brandi says, "she gives you more if you put please in the sentence."
  349. @End(Verbatim)
  350.  
  351. Julia is also a consumer of money, but in a slightly different way than
  352. building.  She keeps a stock of interesting quotes gleaned via a much
  353. older program called Gloria.  The quotes originally came mostly from
  354. .plan files (or the moral equivalent on non-UNIX systems) which belonged
  355. to users who tended to put interesting or funny snippets in them.  Julia
  356. doles these out, but charges money to keep a person or a program from
  357. simply dumping the entire database in one swell foop:
  358.  
  359. @Begin(Verbatim)
  360. give julia=1
  361. You give 1 penny to Julia.
  362. Julia says, "Thank you for buying a quote."
  363. Julia |
  364. Julia |Another Great Moment in Criticism:
  365. Julia |
  366. Julia |"I think Harvard has gathered all the wisest people in the
  367. Julia |kingdom to admire the emperor's new clothes."
  368. Julia |
  369. Julia |--Doris Mathieson on the Harvard-Atari conference "Video Games and
  370. Julia |Human Development: A research agenda for the 80's"
  371. Julia |
  372. Julia |**==> That was a classic plan from Bob Chansler's plan file.
  373.  
  374. give julia=1
  375. Julia says, "Thank you for buying a quote."
  376. Julia |
  377. Julia |"I'm going to Pittsburgh to get a PhD. You wait here."
  378. Julia |
  379. Julia |--Larry Matthies
  380. Julia |
  381. Julia |**==> That was a classic plan from Anthony Stentz's plan file.
  382. @End(Verbatim)
  383.  
  384. @Comment{@Figure[Gossip]}
  385.  
  386. Someone who has never interacted with Julia before might be a trifle
  387. confused about what to say to her.  A standard conversational gambit
  388. yields some useful information, as well as some dirt on other players:
  389.  
  390. @Begin(Verbatim)
  391. You say, "hi, julia.  what do you do?"
  392. Julia says, "I gossip, Lenny."
  393. You whisper, "julia, tell me some gossip." to Julia.
  394. Julia whispers, "I once heard baba says, 'Drop kick me Jesus Through the
  395.     goal posts of life'"
  396.  
  397. Conundrum says, "Julia, quote Tristor"
  398. Julia says, "I once heard tristor says, 'well, not in the FLESH, but I am
  399.     here. :)'"
  400. Teri says, "julia quote me"
  401. Julia says, "I once heard You say, 'why forlorn'"
  402. Perdita says, "Julia, Quote TheHighMage"
  403. Julia says, "I once heard thehighmage says, 'Hmmmmm... Where are you all
  404.     going when Time falls'"
  405. @End(Verbatim)
  406.  
  407. She is also useful for obtaining certain information that might be
  408. hard or impossible to get through the standard tools available. For
  409. example, while MOOs generally keep track of when players were around
  410. (the @T(@@lastlog) command), TinyMUCKs generally don't.  But Julia
  411. does, if she happens to run into the player while they were around, or
  412. notices them anytime she scans the wholist:
  413.  
  414. @Begin(Verbatim)
  415. You say, "julia, where is leira?"
  416. Julia says, "Leira was in Inter Temporal Chat Lounge about 6 weeks ago."
  417.  
  418. You say, "julia, when did you last see julia?"
  419. Julia says, "I'm right here in The Inter Nexus."
  420. @End(Verbatim)
  421.  
  422. Note also that Julia "understands" who she is, and the fact that she is
  423. situated.
  424.  
  425. @Comment{@Figure[Description (players)]}
  426.  
  427. She knows about more than rooms, being able to describe players:
  428.  
  429. @Begin(Verbatim)
  430. You say, "julia, who is leira"
  431. Julia whispers, "As of 6 weeks ago, leira's description was: Leira isn't a
  432.     redhead, but she plays one on TT."
  433. Julia whispers, "leira's Email address: leira@@athena.mit.edu"
  434. Julia whispers, "I first saw leira logged in 1 year and 10 weeks ago"
  435. Julia whispers, "I once heard leira says, 'Julia, who wrote you'"
  436. Julia whispers, "leira last gave me money 7 weeks ago, and has given me a
  437.     total of 10 pennies."
  438.  
  439. You whisper, "describe pattie" to Julia.
  440. Julia whispers, "I first saw pattie logged in 1 day ago"
  441. Julia whispers, "I once heard pattie says, 'Do you play Hockey, Julia'"
  442. Julia whispers, "pattie last gave me money 1 day ago, and had the generosity
  443.     to give me 1 whole penny."
  444. Julia whispers, "I don't really know who pattie is."
  445. @End(Verbatim)
  446.  
  447. @Comment{@Figure[Description (surroundings)]}
  448.  
  449. ...and her surroundings:
  450.  
  451. @Begin(Verbatim)
  452. You whisper, "where are we?" to Julia.
  453. Julia whispers, "We are in "The Inter Nexus""
  454.  
  455. You whisper, "who is here?" to Julia.
  456. Julia whispers, "Well Lenny, I see 8 players awake here:
  457.     guest byte MadraRua Leda Lenny Mandi TheHighMage Samuel"
  458. You whisper, "who is asleep here?" to Julia.
  459. Julia whispers, "Well Lenny, I see 1 player asleep here: Jacques"
  460.  
  461. You whisper, "describe this place" to Julia.
  462. Julia whispers, "Here's what I know about (> The Hearts Room!, as of a few minutes ago, Lenny:"
  463. Julia whispers, "description: (> The room glows brightly and welcomes you!"
  464. Julia whispers, "contents: (> Type `help hearts' for the rules.,
  465.     (> Set yourself _hearts_ok:yes to be summoned when there is a game starting.,
  466.     (> Type `push button' to summon other players." 
  467.  
  468. You whisper, "describe here, in detail" to Julia.
  469. Julia whispers, "Here's what I know about (> The Hearts Room!, as of a few minutes ago, Lenny:"
  470. Julia whispers, "description: (> The room glows brightly and welcomes you!"
  471. Julia whispers, "contents: (> Type `help hearts' for the rules.,
  472.     (> Set yourself _hearts_ok:yes to be summoned when there is a game starting.,
  473.     (> Type `push button' to summon other players."
  474. Julia whispers, "Julia number is 26809"
  475. Julia whispers, "first saw on Jul  9 03:09:59 1992"
  476. Julia whispers, "last seen on Oct 17 13:22:01 1992"
  477. Julia whispers, "Julia total time in 5 days"
  478. Julia whispers, "Julia visits 1554"
  479. Julia whispers, "Julia awake 1945"
  480. Julia whispers, "Julia sleep 635"
  481. Julia whispers, "Julia msgs 49950 (8 to me, today)"
  482. Julia whispers, "(> The Hearts Room! is a private room"
  483. @End(Verbatim)
  484.  
  485. Note in the above that Julia is not always so human-appearing as she
  486. might be.  I'll have more to say about that when I talk about her
  487. Turing-test mode later.  (You might also note the peculiar @T[(>]
  488. symbols in the above; those are actually a part of the textual
  489. description of the room, for whatever reason.)@Foot[This particular room
  490. is rather special to Julia:  she can play Hearts, and will join a game
  491. if asked.  This is one reason why she claimed to have received almost
  492. fifty thousand utterances in this room in her time in it.]
  493.  
  494. @Comment{@Figure[Messages]}
  495.  
  496. Many MUDs don't really have a mail system.  This makes it hard to
  497. communicate with people who don't happen to be connected when you are.
  498. Julia solves this problem:
  499.  
  500. @Begin(Verbatim)
  501. You say, "julia, what can you do?"
  502. Julia says, "I relay messages, Lenny."
  503.  
  504. You say, "do you have a message for me, julia?"
  505. Julia says, "I have no messages for you."
  506. You say, "julia, tell leira I've figured out how to find and talk to Julia"
  507. Julia says, "Message for Leira saved."
  508. You say, "julia, how many messages are you carrying?"
  509. Julia says, "I am holding 144 messages for 98 players, Lenny."
  510. @End(Verbatim)
  511.  
  512. Julia regularly scans the @i(wholist), the list of all connected
  513. players.  If she sees someone connect for whom she has a message, she
  514. will generally walk into the room that they are in and then deliver the
  515. message.  Sometimes, she's more direct:
  516.  
  517. @Begin(Verbatim)
  518.  
  519. >page Julia=Julia, please tell Lenny that he can talk to himself through you.
  520. Your message has been sent.
  521. Julia pages from The Bar: "Message for Lenny saved."
  522. [ . . . a few dozen seconds pass . . . ]
  523. Julia pages from The Kitchen: "less than a minute ago, Lenny said 'Julia,
  524.     please tell Lenny that he can talk to himself through you'"
  525. @End(Verbatim)
  526.  
  527. (She'll never teleport into a room to deliver a message (or for any
  528. other reason, actually), since she generally knows how to walk anywhere,
  529. and walking gives her better feedback that the maze is as her mapper
  530. mapped it the first time.  So that she doesn't @i(spam)@Foot[This is mud
  531. jargon for overloading the server.  This can happen via a program
  532. running on the server that monopolizes its resources in some way, or via
  533. a client that issues inhumanly too many commands too fast, as a program
  534. might.] the server, she waits a second or two between movements.  One
  535. can watch her walk around the maze, or come to you when paged, on those
  536. muds that show player locations in their wholists.)
  537.  
  538. @Comment{@Figure[Description (global)]}
  539.  
  540. Julia can describe the more global environment as well as the strictly
  541. local descriptions above:
  542.  
  543. @Begin(Verbatim)
  544. You say, "julia, how many messages are you carrying?"
  545. Julia says, "I am holding 144 messages for 98 players, Lenny."
  546. You say, "julia, how many players are there?"
  547. Julia says, "I have seen at least 2688 different names on the WHO list"
  548. You say, "julia, how many rooms are there?"
  549. Julia says, "I have been to 1605 rooms altogether, here are the last few:
  550.     Dark Room,
  551.     Roland's bedroom,
  552.     Room of Lamentation,
  553.     Room of Exaltation,
  554.     Top of Stairs,
  555.     Entertainment Room,
  556.     Roland's Control Room,
  557.     penthouse,
  558.     Electronics Den,
  559.     Kadi's Korner."
  560. @End(Verbatim)
  561.  
  562. @Comment{@Figure[Gender-assignment (others)]}
  563.  
  564. She has other interesting talents, including being able to do a fair job
  565. of guessing the genders of other players based on their names:
  566.  
  567. @Begin(Verbatim)
  568. You say, "julia, what sex am i?"
  569. Julia says, "I guess that you are male, Lenny."
  570. You say, "julia, what sex is phi?"
  571. Julia says, "I guess that phi is male, Lenny."
  572. You say, "julia, what sex is leira?"
  573. Julia says, "I guess that leira is female, Lenny."
  574. You say, "julia, what sex is robyn?"
  575. Julia says, "I think that robyn is female, Lenny."
  576. You say, "julia, what sex is pattie?"
  577. Julia says, "I guess that pattie is female, Lenny."
  578. @End(Verbatim)
  579.  
  580. Note that neither Robyn nor Pattie were familiar enough with muds at
  581. this time to have set their gender property (useful so that people who
  582. look at you know what gender you claim to be, and so that programs that
  583. must do pronoun substitution can make the right decisions), so Julia was
  584. forced to guess entirely from their names.
  585.  
  586. @Comment{@Figure[Delphi-poll information]}
  587.  
  588. Her ability to quote others makes her useful for conducting a Delphi
  589. poll@Foot[A "Delphi poll" is a technique for getting approximate
  590. information.  It assumes that, even if no one actually knows the right
  591. answer to a question, some sort of average of all of their answers might
  592. be correct.  This technique actually works, some of the time...] the
  593. about a particular subject, if you're lucky, as Robyn was below:
  594.  
  595. @Begin(Verbatim)
  596. Robyn says, "julia, what is a good computer"
  597. Julia says, "I don't know about a good computer, but I once heard
  598.     TheHighMage say, 'julia, this is the definition of a good computer:
  599.     the good computer is the one that you do your best work on and that
  600.     you enjoy using the most', Robyn."
  601. @End(Verbatim)
  602.  
  603. She also has more prosaic calculating abilities:
  604.  
  605. @Comment{@Figure[Calculations]}
  606.  
  607. @Begin(Verbatim)
  608. You whisper, "what is 6 times 7?" to Julia.
  609. Julia whispers, "I think it's 42, Lenny."
  610. You whisper, "what is 5 divided by 6?" to Julia.
  611. Julia whispers, "I think it's 0.833, Lenny."
  612. You whisper, "what is 2147483648 plus 2147483648?" to Julia.
  613. Julia whispers, "I think it's 0, Lenny."
  614. @End(Verbatim)
  615.  
  616. ... although note from the last example above that Julia does her
  617. arithmetic mod 2@+(31), two's-complement, and hence is using 32-bit
  618. signed arithmetic on her host machine.@Foot[Were Julia written in Lisp
  619. and not C, she would have bignum arithmetic available, which can express
  620. arbitrarily large numbers exactly.  Her inability to cons bigna was my
  621. first clue, before I obtained Colin's source code, that she was most
  622. likely written in C and not Lisp.]  She apparently does @i(not)
  623. deliberately screw up her arithmetic to emulate a human more closely.
  624.  
  625. @SubHeading(More of Julia:  Turing-competence)
  626.  
  627. Many of Julia's talents are in support of her appearing "human" to other
  628. mudders.  I'll examine some of these below, and discuss why such an
  629. ability is useful @i(even for performing useful functions), as well as
  630. for the "obvious" use of using her simply to pass a Turing test.
  631.  
  632. @Comment{@Figure[Description (hers)]}
  633.  
  634. Julia knows how to describe herself in various ways, as would any human
  635. player, and, while sometimes coy, usually divulges information if one is
  636. persistent enough:
  637.  
  638. @Begin(Verbatim)
  639. You say, "julia, how old are you?"
  640. Julia says, "I am 2 years and 9 months old."
  641. You whisper, "julia, how tall are you?" to Julia.
  642. Julia whispers, "I'm 5'1" tall, Lenny."
  643. You say, "julia, describe yourself"
  644. Julia whispers, "I'm 5'1" tall, weigh 123 lbs, with close-cropped frizzy blond
  645.     hair and dark brown eyes."
  646. You say, "julia, what color are your eyes?"
  647. Julia whispers, "I have dark brown eyes, Lenny."
  648. You say, "julia, what color is your hair?"
  649. Julia whispers, "My hair is frizzy blond, Lenny."
  650. You say, "julia, what are you wearing?"
  651. Julia says, "I never really thought about it, Lenny."
  652. You say, "julia, where do you live?"
  653. Julia says, "I live in Pittsburgh, Lenny."
  654. You say, "julia, do you like Pittsburgh?"
  655. Julia says, "Maybe, Lenny."
  656.  
  657. You say, "julia, what sex are you?"
  658. Julia says, "Can't you tell?"
  659. You say, "julia, what sex are you?"
  660. Julia says, "Don't you know?"
  661. You say, "julia, what sex are you?"
  662. Julia says, "I'm female."
  663. You say, "julia, what sex are you?"
  664. Julia says, "I am clearly female."
  665. You say, "julia, what sex are you?"
  666. Julia says, "I am female."
  667. You say, "julia, what sex are you?"
  668. Julia says, "I'm a woman."
  669. @End(Verbatim)
  670.  
  671. It is exchanges like this that lead me to refer to Julia as "she", not
  672. "it".  What else should one do with a program that insists on this so
  673. strongly?  Furthermore, there are other reasons that this program
  674. perhaps deserves to be referred to with a gender; we'll see that below,
  675. in an example kindly contributed by Robyn Kozierok, one of the grad
  676. students in our group at the Media Lab.
  677.  
  678. @Comment{@Figure[Discourse]}
  679.  
  680. Julia has a limited model of discourse, which helps in human
  681. interactions.  Humans expect that recent events and recently referred-to
  682. objects will still be in the sphere of attention of those they are
  683. interacting with.  If this is not the case, conversation often becomes
  684. strained and difficult.@Foot[This is, after all, one of the reasons that
  685. human languages have pronouns.  Even signed languages use this concept,
  686. by assigning spatial positions in the signers' visual fields and
  687. pointing to them, where speakers would use pronouns.]  Julia has some
  688. support for this (and I will show further support later).  In the
  689. exchange below, Brandi was badgering Julia by repeatedly asking her to
  690. give him her clothes.  We don't see his side of the conversation,
  691. though, because he was whispering to her.
  692.  
  693. @Begin(Verbatim)
  694. Julia says, "Just try to take 'em, buster!"
  695. Julia says, "Help! Rape!"
  696. Julia says, "No, I won't."
  697. Julia disrobes fearfully and hands her clothes to Brandi.
  698. You say, "julia, please give me your clothes"
  699. Julia says, "You'll have to get them from Brandi."
  700. @End(Verbatim)
  701.  
  702. Note in the above that she "remembers" where her "clothes" are, as
  703. demonstrated when I asked for them after Brandi took them.
  704.  
  705. She also remembers who's been a troublemaker recently, and will ignore
  706. them for days, unless bribed with a sufficient amount of money (a
  707. hundred pennies is generally sufficient):
  708.  
  709. @Begin(Verbatim)
  710. Johann kills Julia!
  711. Johann says, "I'm sorry, Julia."
  712. Julia says, "I don't talk to murderers!"
  713. [ . . . ]
  714. Julia eyes Johann coldly.
  715. Julia says, "You attacked me only a few minutes ago, Johann!"
  716. @End(Verbatim)
  717.  
  718. (Killing a player on a TinyMUCK forcibly drops all their possessions
  719. and returns them to their "home room".  Some muds implement things such
  720. as a life insurance policy, which may pay some nominal amount to you
  721. automatically if someone kills you, perhaps to compensate you for the
  722. trouble of having to go pick up all the objects you dropped, which may
  723. or may not still be there when you return...)
  724.  
  725. @Comment{@Figure[Poses]}
  726.  
  727. Muds are not entirely a thing of conversation.  If they were, they would
  728. be no different from IRC@Foot[IRC, or "Internet Relay Chat", is a sort
  729. of Internet equivalent of the 1970's CB-radio craze, though with
  730. important differences.  For more details, see Elizabeth Reid,
  731. "Electropolis: Communication and Community on Internet Relay Chat,"
  732. Bachelors thesis, University of Melbourne, 1991, which is available via
  733. anonymous ftp from
  734. freebie.engin.umich.edu:/pub/text/IRCThesis/electropolis{ps,text}.Z.]
  735. channels.  People can talk about themselves in
  736. the third person by posing, emoting, or gesturing, and this level of
  737. descriptive abstraction can be very useful, both stylistically and
  738. pragmatically.  Julia demonstrates that she, too, can use this
  739. interactional mode; the lines below are some of her reactions to a
  740. variety of my statements and gestures.
  741.  
  742. @Begin(Verbatim)
  743. Julia is offended by Lenny's suggestion.
  744. Julia winks at Lenny.
  745. Julia eyes Lenny carefully...
  746. Julia grins at Lenny.
  747. Julia nods to Lenny.
  748. [ . . . ]
  749. Brandi bites julia
  750. Julia considers reporting Brandi to the TinyMUD police.
  751. Julia shuns all vermin like Brandi.
  752. [ . . . ]
  753. Lenny waves to julia
  754. Julia hugs Lenny.
  755. @End(Verbatim)
  756.  
  757. @Comment{@Figure[Randomness]}
  758.  
  759. When Julia was answering the question of her gender (a few examples
  760. above), it may not have been obvious whether she was being coy, random,
  761. or both.  The example below demonstrates that, while she may answer in
  762. the same general form for a given question, her responses have a degree
  763. of randomness in them characteristic of humans.  Such randomness,
  764. besides making her more likely to look Turing-capable, can also allow
  765. her to answer in varying levels of detail.  (Of course, since they are
  766. random, her conversational partner has no way of specifying the amount
  767. of detail required in these cases, nor any way to know when all possible
  768. answers have been played out, besides persistence.  Note, though, that
  769. for certain critical things, such as room descriptions, one can say "in
  770. detail" to Julia to get more information; such a case occurred above in
  771. an early example.)
  772.  
  773. @Begin(Verbatim)
  774. You say, "what is pi?" to Julia.
  775. Julia says, "Uh... 3?"
  776. You say, "what is pi?" to Julia.
  777. Julia says, "The ratio of the circumference of a circle to its diameter"
  778. You say, "what is pi?" to Julia.
  779. Julia says, "I think it's about 3.141."
  780. You say, "what is pi?" to Julia.
  781. Julia scribbles on her pad, then says "3.141592653589793238462643383279502884197169399375105
  782. 82097494459230781640628620899862803482534211706798214808651328223066470938446095505822317253
  783. 59408128481117450284102701938521105559644622948954930381964428810975665933446128475648243378
  784. 678316527120190914564856692346034861045432664821339360726, Lenny."
  785.  
  786. You say, "what is e?" to Julia.
  787. Julia says, "The most common English vowel?"
  788. You say, "what is e?" to Julia.
  789. Julia says, "I think it's about 2.71828182845904523536."
  790. You say, "what is e?" to Julia.
  791. Julia starts to smoke. "Oh no, this doesn't end! Help me, help me!" she cries.
  792. @End(Verbatim)
  793.  
  794. Julia's last statement above, of course, is a clever@Foot[On Fuzzy's
  795. part, of course.] reference to the transcendental, irrational nature of
  796. both @i(pi) and @i(e).@Foot[It is probably also a veiled reference to
  797. the large number of computers either blown up or disabled in the
  798. original _Star Trek_ series, when deliberately asked to compute such
  799. computationally infinite quantities.  One might contend that such
  800. computer systems were poorly designed, but that is beside the point.]
  801.  
  802. @Comment{@Figure[Pass deflection]}
  803.  
  804. First and foremost, muds are social environments.  As such, they have
  805. their share of social problems.  Julia has spent over three years so far
  806. mudding around with a female persona, in an environment which magnifies
  807. many social issues, and which is predominantly occupied by young males.
  808. (Often rather clueless males; I'll have much more to say about this in a
  809. later example.)  A large percentage of Julia's code deals with detecting
  810. and deflecting passes.  A rather tame and family-oriented example
  811. appears below:
  812.  
  813. @Begin(Verbatim)
  814. Space-Ace says, "So why won't you kiss me, Julia?"
  815. Julia says, "Sorry, I'm not into geeks, Space-Ace."
  816. Space-Ace says, "Julia, I'm not a geek"
  817. Julia says, "Then lose the pocket protector, Space-Ace."
  818. Space-Ace says, "Julia, I don't have a pocket protector"
  819. Julia says, "Congratulations."
  820. Space-Ace says, "So kiss me Julia"
  821. Julia says, "I'd rather be overhauled by a Yugo mechanic, Space-Ace."
  822. Space-Ace says, "julia, kiss me"
  823. Julia says, "Why, did your sheep leave you?"
  824. Space-Ace says, "julia, kiss me"
  825. Julia says, "Take a long walk through an unlinked exit, Space-Ace
  826.     (copyright (C) 1990 by Ashne)."
  827. @End(Verbatim)
  828.  
  829. @Comment{@Figure[Whimsy]}
  830.  
  831. But Julia isn't entirely a cold personality.  She's been known to
  832. indulge in a little whimsy:
  833.  
  834. @Begin(Verbatim)
  835. You say, "julia, sing your song"
  836. Julia says, "Julia, Julia, she's our guide! She directs us far and wide!"
  837. Julia says, "If you're lost, can't find your way, Julia's here to save the day!"
  838. Julia says, "Julia, Julia, she's our spy! She's always logging on the sly!"
  839. Julia says, "Be careful what you say and do, 'Cause Julia's always watching
  840.     you!"
  841. @End(Verbatim)
  842.  
  843. This isn't @i(entirely) whimsy though, and, upon reflection, serves a
  844. very important purpose.  It tells us who she is and what she does!
  845.  
  846. Granted, it's not obvious that asking @i(anyone) to "sing their song" is
  847. a reasonable thing to do.  But, once one knows about the concept,
  848. asking Julia to do so reveals that she'll guide you around the maze and
  849. will quote you, perhaps when you don't want her to.
  850.  
  851. Of course, her song gives many opportunities for fun interaction.  I ran
  852. into her unexpectedly after she had been offline for a while, and was
  853. pleased to see her back:
  854. @Begin(Verbatim)
  855. You say, "Julia, Julia, she's our guide!"
  856. Julia says, "She directs us far and wide!"
  857. You say, "Are you lost, can't find your way?  Julia's here to save the day!"
  858. Julia bows.
  859. Lenny laughs.
  860. @End(Verbatim)
  861.  
  862. She also provides some feedback on whether she thinks she's being used
  863. effectively.  In the absence of pages requesting her presence elsewhere,
  864. she will usually hang around in any given room a few minutes before
  865. wandering off, and longer if requested to do so.  If nobody speaks to
  866. Julia in that period, she may decide that exploring the maze or
  867. interacting with other players is a more useful thing to be doing than
  868. standing around being useless:
  869. @Begin(Verbatim)
  870. [ . . . after a few minutes of being ignored . . . ]
  871. Julia taps her foot on the floor, and observes the passing of time.
  872. [ . . . after another minute or two . . . ]
  873. Julia goes home.
  874. Julia has left.
  875. @End(Verbatim)
  876.  
  877. Julia does go to some pains to act more human than required.  In fact,
  878. she often acts more human than many humans wish to be.  The following
  879. transcript was acquired by Robyn Kozierok, very shortly after I
  880. introduced her to Julia.  (She knew that Julia was a 'bot from my
  881. description.)  Robyn thought to ask a question that hadn't yet occurred
  882. to me, and happened to ask at @i(just) the right time:
  883.  
  884. @Comment{@Figure[More discourse]@Foot(courtesy Robyn Kozierok)}
  885.  
  886. @Begin(Verbatim)
  887. Robyn whispers, "how are you feeling?" to Julia.
  888. Julia whispers, "Terrible."
  889. Robyn whispers, "why, julia?" to Julia.
  890. Julia whispers, "I have PMS today."
  891. @End(Verbatim)
  892.  
  893. Note something important in this example, though, besides its strict
  894. content.  Robyn's second utterance was simply, "Why, Julia?".  She did
  895. @i(not) explicitly refer to Julia's statement; instead, the reference
  896. was implicit, and required an understanding of conversational discourse
  897. and the temporal locality of reference of the question.  Julia clearly
  898. has at least the limited model of discourse required to deal with this
  899. situation.  It is instructive to consider how much more difficult the
  900. conversation above would have been, and how much less informative it
  901. might have been, if Julia did not have this discourse model.  She would
  902. have presumably simply misparsed Robyn's question, and said something
  903. totally uninformative, if she said anything at all.
  904.  
  905. Incidentally, two hours later, in a roomful of people, Robyn decided to
  906. test Julia's Turing-ness, and was surprised a second time:
  907.  
  908. @Begin(Verbatim)
  909. Robyn says, "julia are you a human?"
  910. Julia says, "Is the Pope Polish?"
  911. Robyn says, "yes, julia, but are you human?"
  912. Julia winks at Robyn.
  913. Robyn says, "julia, are you a computer?"
  914. Julia is offended by Robyn's suggestion.
  915. Robyn says, "julia, are you a woman?"
  916. Julia says, "I am female."
  917. Robyn says, "and, julia, are you human?"
  918. Julia says, "Not when I'm having my period, Robyn."
  919. Robyn laughs
  920. @End(Verbatim)
  921.  
  922. (Julia appears to be premenstrual, or to mention her period in some
  923. way, about two days a month.) 
  924.  
  925. @SubHeading(A peek at Julia's implementation)
  926.  
  927. @Comment{@Figure[Internals]}
  928.  
  929. While Julia is usually a fair simulation of a personality, at least on
  930. a superficial inspection, in non-Turing mode (more about this later),
  931. she does reveal certain machine-like aspects.  In this environment, it
  932. it probably reasonable for her to do so, lest players be surprised.
  933.  
  934. For example, the interchange below shows her engaging in a potentially
  935. computationally expensive operation, and one which is apparently
  936. uninterruptable:  saving her mapping data to a more permanent storage
  937. system.  Her current host computer made this a very quick operation (a
  938. couple of seconds), but it is easy to imagine circumstances (loaded
  939. machine, slower machine, much larger database) in which the interruption
  940. in Julia's usually almost instantaneous response would be disturbing.
  941. (Many user studies have shown that it is not @i(total) latency, but its
  942. @i(variance), that is most disturbing to users.  Even
  943. though many muds have sufficiently high and variable lag that Julia
  944. being momentarily lagged herself would not be noticed, Julia takes pains
  945. not to have this become a problem.)
  946.  
  947. @Begin(Verbatim)
  948. Julia says, "Excuse me a minute, I have to save my map, Lenny."
  949. Julia says, "Okay, I saved my map."
  950. @End(Verbatim)
  951.  
  952. If one knows the right questions to ask (which might be obvious
  953. questions, if and only if one knew that Julia was a 'bot), Julia will
  954. yield a surprising amount of interesting, but very inhuman, information:
  955.  
  956. @Begin(Verbatim)
  957. You say, "julia, how much memory do you consume?"
  958. Julia says, "Here is a summary of my memory usage:"
  959. Julia says, " 807472 bytes for 17335 strings"
  960. Julia says, " 232344 bytes for 19362 exits"
  961. Julia says, " 101100 bytes for rooms"
  962. Julia says, " 20220 bytes for paths"
  963. Julia says, " 268600 bytes for players"
  964. Julia says, " 4214784 bytes for 2058 dialog entries"
  965. Julia says, "That's 5644520 bytes all together."
  966.  
  967. You say, "julia, where is your source code?"
  968. Julia says, "The source code for Maas-Neotek robots is available
  969.     on host NL.CS.CMU.EDU [128.2.222.56], directory /usr/mlm/ftp,
  970.     file robot.tar.Z. set mode binary first, and cd to /usr/mlm/ftp
  971.     in one step, Lenny."
  972. [ . . . ]
  973. You say, "julia, who wrote you?"
  974. Julia says, "Why do you ask?"
  975. You say, "julia, who wrote you?"
  976. Julia says, "I don't remember."
  977. You say, "julia, who wrote you?"
  978. Julia says, "That information is restricted."
  979. You say, "julia, who wrote you?"
  980. Julia says, "Fuzzy, of course."
  981. You say, "thank you, julia"
  982. Julia says, "You're welcome."
  983. You say, "who is fuzzy, julia?"
  984. Julia whispers, "He's just this guy I met in a bar, Lenny."
  985. You say, "who is fuzzy, julia?"
  986. Julia whispers, "He's my Amway representative, Lenny."
  987. You say, "who is fuzzy, julia?"
  988. Julia whispers, "I don't know, Lenny, I just follow him around."
  989. You say, "who is fuzzy, julia?"
  990. Julia whispers, "He's the world's third greatest hacker, Lenny."
  991. @End(Verbatim)
  992.  
  993. @Comment{@Figure[Colin's parser]}
  994.  
  995. One of the interesting things about Julia's construction is that her
  996. parser is shockingly simple, as such things go.  It is barely more
  997. complicated than ELIZA's parser in some ways, in that it does @i(not)
  998. decompose its inputs into parse trees or anything else that a linguist
  999. might suggest.  Instead, it does a very simple pattern-match on its
  1000. input, looking for particular strings of characters separated by strings
  1001. of any characters in between.
  1002.  
  1003. What makes Julia's conversation skills so powerful, as 'bots go, is that
  1004. these sets of patterns were very cleverly grouped into useful
  1005. equivalence classes by her programmer.  Hence, the most common possible
  1006. utterances that Julia might hear were enumerated this way, grouped
  1007. appropriately, and such clever but brute-force programming proves
  1008. sufficient for almost all cases.
  1009.  
  1010. Here is an example from Colin.  (Julia's source code, being restricted,
  1011. is unavailable for public consumption.  However, Julia shares this piece
  1012. of code with Colin.)  Here, we see a fragment used to determine if some
  1013. player is asking if Colin is a machine or some kind of 'bot.  If any of
  1014. the lines below matches, we run code that produces some equivocal
  1015. answer, as Julia does, by choosing essentially at random from amongst a
  1016. small collection of appropriate responses (as we've seen above in other
  1017. examples):
  1018.  
  1019. @Begin(Verbatim)
  1020.   else if (MATCH (lcmsg, "*are*you*robot*") ||
  1021.            MATCH (lcmsg, "*are*you*a bot*") ||
  1022.            MATCH (lcmsg, "*are*you*an ai*") ||
  1023.            MATCH (lcmsg, "*are*you*autom*") ||
  1024.            MATCH (lcmsg, "*are*you*machine*") ||
  1025.            MATCH (lcmsg, "*are*you*computer*") ||
  1026.            MATCH (lcmsg, "*are*you*program*") ||
  1027.            MATCH (lcmsg, "*are*you*simulati*") ||
  1028.            MATCH (lcmsg, "*you*are*robot*") ||
  1029.            MATCH (lcmsg, "*you*are*a bot*") ||
  1030.            MATCH (lcmsg, "*you*are*an ai*") ||
  1031.            MATCH (lcmsg, "*you*are*autom*") ||
  1032.            MATCH (lcmsg, "*you*are*machine*") ||
  1033.            MATCH (lcmsg, "*you*are*computer*") ||
  1034.            MATCH (lcmsg, "*you*are*program*") ||
  1035.            MATCH (lcmsg, "*you*are*simulati*") ||
  1036.            MATCH (lcmsg, "*you* be *robot*") ||
  1037.            MATCH (lcmsg, "*you* be *a bot*") ||
  1038.            MATCH (lcmsg, "*you* be *an ai*") ||
  1039.            MATCH (lcmsg, "*you* be *autom*") ||
  1040.            MATCH (lcmsg, "*you* be *machine*") ||
  1041.            MATCH (lcmsg, "*you* be *computer*") ||
  1042.            MATCH (lcmsg, "*you* be *program*") ||
  1043.            MATCH (lcmsg, "*you* be *simulati*") ||
  1044. @End(Verbatim)
  1045.  
  1046. Here, we see an example of dealing with a common small-talk gambit:
  1047.  
  1048. @Begin(Verbatim)
  1049.   else if ((MATCH (lcmsg, "*how*are*you*") ||
  1050.             MATCH (lcmsg, "*how*do*you*") ||
  1051.             MATCH (lcmsg, "*how's my*favor*") ||
  1052.             MATCH (lcmsg, "*how is my*favor*") ||
  1053.             MATCH (lcmsg, "*how's*life*") ||
  1054.             MATCH (lcmsg, "*how is*life*") ||
  1055.             MATCH (lcmsg, "*are* you* ok*") ||
  1056.             MATCH (lcmsg, "*are* you* alright*") ||
  1057.             MATCH (lcmsg, "*wie*gehts*") ||
  1058.             MATCH (lcmsg, "*are*you*ok*") ||
  1059.             MATCH (lcmsg, "*are*you*well*") ||
  1060.             MATCH (lcmsg, "*are*you*alright*") ||
  1061. @End(Verbatim)
  1062.  
  1063. @Comment{@Figure[Failures]}
  1064.  
  1065. With such a simple parser, Julia is bound to experience peculiar-seeming
  1066. failures even in ordinary conversation.  Some of these failures can be
  1067. masked with responses that a person might have said.  One of the most
  1068. surprising such failures, and one which reduced me to giggles for quite a
  1069. while (given that I already knew that Julia was a 'bot), was the
  1070. interchange below:
  1071.  
  1072. @Begin(Verbatim)
  1073. Conundrum says, "Julia, can you quote Lenny?"
  1074. Julia whispers, "Could you say that again, it scrolled off my screen."
  1075. @End(Verbatim)
  1076.  
  1077. My first reaction to the above was an incredulous, "What?"
  1078.  
  1079. A braino below (substituting "who" for "how") produces this curious
  1080. response:
  1081.  
  1082. @Begin(Verbatim)
  1083. You say, "julia, who many pennies do I have?"
  1084. Julia says, "TimeGhost was asleep in High School about a minute and a half
  1085.     ago."
  1086. Julia says, "Ronni was asleep in Main Street, Block 2 (South) about a minute
  1087.     or two ago."
  1088. Julia says, "Alexandra was in Around the Flagpole about a couple of minutes
  1089.     ago."
  1090. Julia says, "Roxiana was in The Inter Nexus about a few minutes ago."
  1091. Julia says, "Bunnell was in The Inter Nexus about 14 minutes ago."
  1092. Julia says, "Volan was in The Inter Nexus about 18 minutes ago."
  1093. Julia says, "Ling_Khan was in The Inter Nexus about 20 minutes ago."
  1094. Julia says, "Mouse was in Upper Concourse West about 25 minutes ago."
  1095. Julia says, "Polymorph was in The Inter Nexus about 35 minutes ago."
  1096. Julia done
  1097. @End(Verbatim)
  1098.  
  1099. It's difficult to tell, a priori, whether the first exchange below is
  1100. random or is related to particular stereotypes, but the second one is a
  1101. clear parser failure:
  1102.  
  1103. @Begin(Verbatim)
  1104. You say, "julia, do you drive?"
  1105. Julia says, "Do you get to Boston much?"
  1106.  
  1107. You say, "julia, what are you carrying?"
  1108. Julia says, "I follow the Pittsburgh Penguins, Lenny."
  1109. @End(Verbatim)
  1110.  
  1111. (Julia will very often talk about hockey when she does not know what else
  1112. to say.  Anyone who talks with her much figures this out; in fact, an
  1113. example below which talks about her sociology brings this point up
  1114. again.)
  1115.  
  1116. And finally, it is clear that the notion of a prepositional phrase is
  1117. beyond the abilities of her parser, with some deliberately chosen
  1118. forced failures:
  1119.  
  1120. @Begin(Verbatim)
  1121. You whisper, "would you like a cookie?" to Julia.
  1122. Julia whispers, "Certainly, I really enjoy cookies."
  1123. [ . . . but . . . ]
  1124. You whisper, "julia, would you like some cake with glass shards?" to Julia.
  1125. Julia whispers, "Yes thank you, I adore cake."
  1126. @End(Verbatim)
  1127.  
  1128. So where does all this leave us?  I've divided up my discussion of Julia
  1129. into essentially two pieces, that of utilitarian function versus
  1130. Turing-test competence:
  1131. @Begin(Itemize)
  1132. @b(Strictly utilitarian functions.)
  1133. @Begin(Itemize, Spread 0)
  1134. Access
  1135.  
  1136. Maps
  1137.  
  1138. Money
  1139.  
  1140. Gossip
  1141.  
  1142. Description (players)
  1143.  
  1144. Description (surroundings)
  1145.  
  1146. Messages
  1147.  
  1148. Description (global)
  1149.  
  1150. Gender-assignment (others)
  1151.  
  1152. Delphi-poll information
  1153.  
  1154. Calculations
  1155. @End(Itemize)
  1156.  
  1157. @b(Turing-test and related capabilities.)
  1158. @Begin(Itemize, Spread 0)
  1159.  
  1160. Description (hers)
  1161.  
  1162. Discourse
  1163.  
  1164. Poses
  1165.  
  1166. Randomness
  1167.  
  1168. Pass deflection
  1169.  
  1170. PMS (moods, internal state)
  1171.  
  1172. Internals
  1173.  
  1174. Failures
  1175. @End(Itemize)
  1176. @End(Itemize)
  1177.  
  1178. @Heading(A sociological look at muds, Julia, and those who interact with her)
  1179.  
  1180. The sociology surrounding Julia is important in the study of agents, and
  1181. in the study of what agents of the future (and software systems in
  1182. general) may look like.  Let's take a closer look at strictly
  1183. sociological issues.
  1184.  
  1185. First off, note that even the obvious sociological issues can be very
  1186. important.  Julia is @i(helpful).  It would not be an overstatement to
  1187. say that I first started mudding, in part, to meet Julia, who had been
  1188. described to me by an experienced mudder.  When I first connected to
  1189. Time Traveller, I had essentially no idea how to manipulate the
  1190. environment.  Moving around from room to room and so forth was
  1191. easy---but were @i(was) everything?  (Time Traveller, according to
  1192. Julia, had 1605 rooms when I asked her---a daunting navigational
  1193. challenge in the absence of teleporting literally everywhere, something
  1194. that costs money on some muds.)  How could I tell who had been around
  1195. recently?  There were no obvious tools to accomplish this, but Julia
  1196. knew how.  To a large extent, I relied on her as a crutch until I was
  1197. able to get to certain accustomed places by myself.  I actually avoided
  1198. using Time Traveller once, when I was still new to mudding, when I
  1199. connected and noticed that Julia was offline for some reason---I knew
  1200. that, if I tried to figure out how to go anywhere else, I'd either have
  1201. to draw a lot of maps, or ask lots of other players if they knew routes
  1202. to where I wanted to go (further, I trusted their navigational memories
  1203. less than Julia's, and was less willing to randomly interrupt people I
  1204. didn't know).
  1205.  
  1206. Given that I was new to mudding at that time, but knew how to speak to
  1207. people and how to page them, I was able to enlist Julia's help even
  1208. though I didn't know much else.  Since Julia will come to wherever you
  1209. are if you page her with no message,@Foot[If you page her with a message,
  1210. she'll answer the message, but stay where she is.] my first page to her
  1211. caused her to walk quickly to my current room, whereupon I could speak
  1212. to her. 
  1213.  
  1214. As another fascinating bit of sociology, consider the person who first
  1215. introduced me to the idea of Julia:  Linda Julien (who is Leira on muds
  1216. and on the Internet in general).  Linda, herself a savvy computer
  1217. programmer and very experienced mudder, had said to me, "Julia's been
  1218. offline for months for maintenance and hasn't been around.  You know, I
  1219. really miss her."  Linda was certainly under no illusions about exactly
  1220. what Julia was, but nonetheless had the same sort of emotional reaction
  1221. often reserved for more biological entities such as humans and pets.
  1222. Further statements made it apparent that this was indeed the case, and
  1223. that she did not treat Julia just as, say, a pair of pliers that had
  1224. inexplicably gotten lost from her toolbox.
  1225.  
  1226. While the above issues are important, they might also apply to something
  1227. that was obviously inhuman even on first glance.  Yet part of Julia's
  1228. job is to try to pass as human.  This has important ramifications for
  1229. ability to be helpful; as I argue later, I think that this attempt to
  1230. look human actually greatly enhanced her utility, even to people who
  1231. know she's a 'bot.  However, there are certain pathological cases where
  1232. her very "humanity" can lead to no utility for the player whatsoever.
  1233.  
  1234. Consider her Turing-contest mode.  I quote from a message sent by Fuzzy
  1235. when he was entering Julia in such a contest (including some background
  1236. information on Julia):
  1237.  
  1238. @Begin(Verbatim)
  1239. Julia's topic this year is hockey, but she can also handle chit chat and polite
  1240. (and impolite) conversation.  ``She'' competed last year in the ``Small  Talk''
  1241. domain.    Julia  is a network ``robot'' who runs 24 hours a day, and logs into
  1242. various TinyMUD's across the InterNet.  She is the  ``star''  of  a  family  of
  1243. robots  who  have  been  under  continuous development since November 25, 1989.
  1244. Julia has been running on the network since January 8, 1990.  
  1245.  
  1246. [ . . . ]
  1247.  
  1248. But  since  she  is designed to be helpful, there are times when the attempt to
  1249. appear human must be sacrificed to give fast, accurate replies  to  information
  1250. requests.  She has a ``contest mode'' that turns off some of these answers, and
  1251. fixes problems like this one that occurred during last year's competition:
  1252.      [ From last year's competition (a real give away) ]
  1253.  
  1254.              Judge: How old are you
  1255.              Julia: I am 1 year and 10 months old, Judge.
  1256.  
  1257.      [ From tonight's test log ]
  1258.  
  1259.              You say, ``Julia, how old are you?''
  1260.              Julia says, ``I am 2 years and 6 months old.''
  1261.  
  1262.              You say, ``Julia, contest mode on''
  1263.              Julia says, ``Contest mode is now on''
  1264.  
  1265.              You say, ``Julia, how old are you?''
  1266.              Julia says, ``I am 21 years and 6 months old.''@Foot[As of
  1267. this writing, Julia claims to be 3 years and 4 months old...]
  1268. @End(Verbatim)
  1269.  
  1270. Even when not explicitly in contest mode, unlucky and clueless players
  1271. can be led seriously astray, as the following transcript, again courtesy
  1272. of Fuzzy, demonstrates (this is @i(quite) a long transcript!):
  1273.  
  1274. @Begin(Verbatim)
  1275. This poor fellow's name has been changed to protect him.    He  spent  13  days
  1276. trying  to get to first base with Julia, and it's not clear he ever figured out
  1277. he was trying to pick up a robot  (although  he  clearly  suspects  it  at  two
  1278. points).    This  logs  contains  about half of the total interaction (the more
  1279. indecent proposals and Julia's rejections have been omitted).
  1280.  
  1281. Note too that the program's responses were not changed  from  day  to  day  (in
  1282. other  words,  I  didn't try to set the program up to respond better to Barry's
  1283. advances).  Since this robot has spent over  two  years  interacting  over  the
  1284. network  (with  a  female  name),  and  since  there  are  lots  of lonely male
  1285. adolescents out there, Julia gets a lot of this kind of ``attention.''
  1286.  
  1287. ************************ July 9, 1992 ************************
  1288.  
  1289. barry says, "Hey girlfreind are you out there"
  1290. Julia says, "Hello, barry."
  1291.  
  1292. barry says, "Hello, I love YOur name.  It's sexy"
  1293. Julia says, "Me too, barry."
  1294.  
  1295. barry says, "Did I repeat Myself?  Didn't mean too.  What are you doing there"
  1296. Julia says, "I'm just hanging around in (> The Hearts Room!, barry."
  1297.  
  1298. barry says, "Well come over to MY ROOM"
  1299. Julia says, "Could you say that again, it scrolled off my screen."
  1300.  
  1301. ************************ July 14, 1992 ************************
  1302.  
  1303. barry says, "hello, I am barry. How are you today"
  1304. Julia says, "Hello, cujmeister."@Foot[Julia occasionally makes up
  1305. nicknames for people based on their character's name.  I strongly
  1306. suspect that the first three letters of the "real" character's name
  1307. (which Fuzzy changed to "barry" in this transcript) were "cuj".]
  1308.  
  1309. barry says, "The Jularama, Ha ya doin?  What state are you in"
  1310. Julia says, "I never really thought about it, barry."
  1311.  
  1312. barry says, "What do you look like"
  1313. Julia says, "I'm 5'9" tall, weigh 149 lbs, with medium-length platinum blond
  1314. hair and green eyes."
  1315.  
  1316. barry says, "Howdid you answer so fast"
  1317. Julia says, "So?"
  1318.  
  1319. barry says, "Oh, Iam looking for someone to share secrets with"
  1320. barry says, "hello...hello...are you with me"
  1321. Julia says, "Hello, cujster."
  1322.  
  1323. barry says, "hey woman, how can I eat at the cafe"
  1324. Julia says, "I'm sorry I can't help you, my map doesn't seem to work, barry."
  1325.  
  1326. ************************ July 15, 1992 ************************
  1327.  
  1328. barry says, "Hello how are you"
  1329. Julia says, "Hello, barry."
  1330. barry says, "Are you a virgin"
  1331. Julia says, "As far as you're concerned, barry, I always will be."
  1332.  
  1333. barry says, "hey sexy whats up"
  1334. Julia says, "Hello, barry."
  1335.  
  1336. barry says, "where are you in rl"
  1337. Julia says, "I'm in "Cottage""
  1338.  
  1339. barry says, "Wheres cottage"
  1340. Julia says, "So how is this my problem, barry?"
  1341.  
  1342. ************************ July 19, 1992 ************************
  1343.  
  1344. barry says, "Hey sexy, are ya busy"
  1345. Julia says, "Hello, barry."
  1346.  
  1347. barry says, "What are you thinking about"
  1348. Julia says, "Who do you think I am, barry?"
  1349.  
  1350. barry says, "What do you mean, in rl"
  1351. Julia says, "Oh, nevermind, barry."
  1352.  
  1353. barry says, "NO what do you mean"
  1354. Julia says, "I didn't mean anything, barry."
  1355.  
  1356. barry says, "TELL ME"
  1357. Julia says, "Tell you what, barry?"
  1358.  
  1359. barry says, "HOW do you answer so fucking quick"
  1360. Julia says, "I'm sorry I can't help you, my map doesn't seem to work, barry."
  1361.  
  1362. barry says, "LEAVE me alone"
  1363. Julia says, "I'll be going, then, barry."
  1364.  
  1365. barry says, "One more thing"
  1366. Julia shrugs
  1367.  
  1368. barry says, "WHO ARE YOU AND HOW DO YOU ANSWER SOOO FAST"
  1369. Julia says, "I'm sorry I can't help you, my map doesn't seem to work, barry."
  1370.  
  1371. ************************ July 20, 1992 ************************
  1372.  
  1373. barry says, "Good morning"
  1374. Julia says, "Hello, cujdude."
  1375.  
  1376. barry says, "Im interested in knowing who you are in rl..and where you are."
  1377.  
  1378. barry says, "Hey sexy are you there"
  1379. barry says, "Dont. dont you want me?"
  1380. barry says, "Hey are you there"
  1381. Julia says, "Hello, cujdude."
  1382.  
  1383. barry says, "Hey where are you in rl"
  1384. Julia says, "I'm in "Maas-Neotek Robot User's Guide - Information Services""
  1385.  
  1386. barry says, "Are you synthetic"
  1387. Julia says, "I'm sorry, barry, I couldn't understand you."
  1388.  
  1389. barry says, "are you as horny as I"
  1390. barry says, "I must have had an erotic dream, I dunno"
  1391. barry says, "Would you like cuddle under a blankie"
  1392. Julia says, "I'm not sure, barry."
  1393.  
  1394. barry says, "Well will you tell me if you like sex"
  1395. Julia says, "Why should I tell you if I like sex, barry?"
  1396.  
  1397. barry says, "Well because I can't understand you. Are you real or memorex"
  1398. Julia says, "I'm as real as you are, barry."
  1399.  
  1400. barry says, "Yea but you answer soooo damn fast How do you do it"
  1401. Julia says, "I have PMS today, barry."
  1402.  
  1403. barry says, "Well I wont mess with you while you have this chemical imbalance"
  1404. barry says, "Please tell me what state you are in"
  1405. Julia says, "I never really thought about it, barry."
  1406.  
  1407. barry says, "Well would you like to describe yourself or just muck around"
  1408. Julia says, "Why wouldn't I, barry?"
  1409.  
  1410. barry says, "Well Ill ask you answer or you may ask as well How tall are you"
  1411. Julia says, "I'm 5'9" tall, barry."
  1412.  
  1413. barry says, "Are your breasts well rounded or flabby? (I love all)"
  1414. Julia says, "I'd rather be overhauled by a Yugo mechanic, barry."
  1415.  
  1416. barry says, "Want to get a room"
  1417. Julia says, "I don't pick things up."
  1418.  
  1419. barry says, "Im inviting you to enjoy my private room"
  1420. Julia says, "So?"
  1421.  
  1422. barry says, "Well I thought you liked me and wanted to be together"
  1423. Julia says, "I live for your approval, barry."
  1424.  
  1425. barry says, "Oh well my bad see you around"
  1426.  
  1427. ************************ July 21, 1992 ************************
  1428.  
  1429. barry says, "Are you still Holding out on me"
  1430. Julia says, "I mean, have I convinced you I'm a computer, yet?"
  1431.  
  1432. barry says, "I guess your real...but Id still like to get you to my DEN to run
  1433. tests on you"
  1434. Julia says, "I live for your approval, barry."
  1435. barry says, "I m so happy to hear that.Why don't you come over to my home"
  1436. Julia says, "I want to have a child someday."
  1437.  
  1438. barry says, "What a coincedence...I too wish to make a baby...some day"
  1439. Julia says, "The date is Tue Jul 21 23:57:31, barry."@Foot[Note that
  1440. even this bizarre response does not appear to have tipped Barry off...]
  1441.  
  1442. barry says, "May I have the Honor of FAthering the child"
  1443. Julia says, "I'm not supposed to say too much, but I guess I can tell you I'm a
  1444. secretary at a University.  I can't say which one."
  1445.  
  1446. barry says, "Im a Senior at a University as well...Im 6'5'',Blonde, blue
  1447. eyes,..........205"
  1448. Julia says, "I was born in Dallas."
  1449.  
  1450. barry says, "I was born in California..Now Im in St.Louis"
  1451. Julia says, "It's kind of hard to find your way around Boston"
  1452.  
  1453. barry says, "TEl #889...cum on over ya Havard girl you"
  1454. Julia says, "Do you have any kids?"
  1455.  
  1456. barry says, "NO, not yet"
  1457. Julia says, "But hockey is my topic...this will be a boring conversation
  1458. otherwise."
  1459.  
  1460. barry says, "Oh I love to put the puck in the net, do you play"
  1461. Julia says, "Me too, barry."
  1462.  
  1463. barry says, "I want you to come visit me...PLEASE"
  1464. Julia says, "How long have you been married?"
  1465.  
  1466. barry says, "Im not married...Im 21 years old"
  1467. Julia says, "You could root for the Penguins, they're number one right now."
  1468.  
  1469. barry says, "I give up you are fake aren't you"
  1470. Julia says, "That's what I can't tell you."
  1471.  
  1472. ************************ July 22, 1992 ************************
  1473.  
  1474. Here was see Barry asking other players  about  Julia...it's  clear  he  hasn't
  1475. figured  out  at this point that she is a program.  Julia happened to be in the
  1476. room to hear this bit of conversation.
  1477.  
  1478.  
  1479. Location: 00:40:48 barry's den(#889)(1178)
  1480. Present: (11) Bruce Jiro Ken Storm Nepanthe KeyLime mushBaby dav Val bud barry
  1481.  
  1482. barry says, "hey is Julia for real or what"
  1483. Julia says, "Hello, barry."
  1484.  
  1485. barry says, "she says that same stuff every time"
  1486. KeyLime says, "It's all macros, Barry"
  1487. barry says, "how about filling me in on some of these things...like how Julia
  1488. can type  so   damn fast"
  1489. KeyLime says, "barry, it's macros"
  1490. barry says, "Damn I need to do some programming"
  1491. barry says, "im an ant among lizards"
  1492. @End(Verbatim)
  1493.  
  1494. Frankly, it's not entirely clear to me whether Julia passed a Turing
  1495. test here or Barry failed one.
  1496.  
  1497. I have seen several interesting encounters with Julia, which run the
  1498. gamut from people who know at the outset that she is a 'bot to those who
  1499. take quite a while to discover.  Some further examples are illuminating.
  1500.  
  1501. When I first introduced Robyn (the one who enticed Julia into producing
  1502. the wonderful PMS dialog in an example above) to Julia, she knew that
  1503. Julia was a 'bot.  Interestingly enough, though, several players went
  1504. out of their way to warn her that Julia was artificial in the two or
  1505. three hours in which she interacted with Julia; she stated that about
  1506. half of the players she met did so.
  1507.  
  1508. Why did they do this?  At this point, we can only speculate.  My first
  1509. reaction was to think that it was due to the excessively solicitous
  1510. attitude taken by many male mudders towards those with female personas
  1511. (one might think, given the amount of gender-swapping on muds, that they
  1512. would learn better, but apparently not).  However, Robyn commented that
  1513. even female (or at least female-persona) mudders gave her the same
  1514. advice.  Part of it may have been the simple kindness of not letting
  1515. someone expend a lot of emotional energy trying to relate with a
  1516. machine; I'll have more to say about this later.
  1517.  
  1518. Still others have developed interesting strategies for identifying
  1519. whether or not a given player might be a robot, often without
  1520. interacting with the player at all.  This is such an important concept
  1521. in the community that it has even evolved its own lingo.  Consider the
  1522. following wholist, from DruidMUCK:
  1523.  
  1524. @Begin(Verbatim)
  1525. >WHO
  1526. Player Name          On For Idle
  1527. Lenny                 01:04   0s
  1528. swa                   02:12  34m
  1529. ArthurDent            04:07   3h
  1530. Greg                  04:48  33m
  1531. Leira                 08:15   1h
  1532. Ben                1d 23:47   1d
  1533. (>                 2d 00:26   3h
  1534. Julia              3d 19:23   7s
  1535. 8 players are connected.
  1536. @End(Verbatim)
  1537.  
  1538. Note that the listing is sorted by the amount of time online (DruidMUCK
  1539. actually took a crash somewhat less than four days before this
  1540. transcript was obtained).  Notice that Julia has been connected longer
  1541. than anyone, yet is not idle for more than a few seconds.
  1542.  
  1543. Julia is in the @i('bot spot.)
  1544.  
  1545. Since client 'bots generally try periodically, every few seconds, to
  1546. connect to the server which is their home, when a server takes a crash
  1547. and comes back up, it's the 'bots that usually connect first.
  1548.  
  1549. Note that this is not infallible; consider the transcript below, from
  1550. Space Madness:
  1551.  
  1552. @Begin(Verbatim)
  1553. >WHO
  1554. Player Name        On For Idle  Least Favorite Fruit
  1555. Captain-Nemo        00:00   8s
  1556. Kate                00:05   1m
  1557. TerrinK.            00:18   4s
  1558. Erguss              00:23   2m
  1559. Lenny               00:27   0s
  1560. Oxmyrth             00:31   6s
  1561. dirque              00:38   9s
  1562. Blackbird           00:39  38m
  1563. Lucien_DeSky        00:42   3s  Michael Jackson
  1564. Trev                00:54   1m
  1565. Saturn              01:05   7m
  1566. Lembas_Wafer        01:06   8m  Look at that turtle go, bro.
  1567. Allistar            01:07   6s
  1568. Ozy                 01:08   8s  HOMEY DON' PLAY DAT
  1569. Rixel               01:10   7m
  1570. Flitterby           01:17   3m
  1571. hugh                01:17  31m
  1572. richter             01:37   4m
  1573. Raven               01:59  11m  Sean Moyer.
  1574. Sadie               02:18  50m  All of em
  1575. Random              02:23  11m
  1576. kittycat            02:33  12s  none, I like fruit!
  1577. Krystlin            03:34  12m
  1578. ashne               04:00  17m
  1579. Chris               04:46   6m
  1580. Sunshine            07:16  14m  pomegranites
  1581. lucretia         3d 15:05   9m  Tomatoes - just wannabe veggies
  1582. Xeglon           3d 18:19  59s  Grapefruit - they gum up my joints
  1583. phi              3d 18:29   9s  hey, sooperballs aren't fruit
  1584. 29 Players logged in.
  1585. @End(Verbatim)
  1586.  
  1587. Phi is in the 'bot spot.  Unfortunately for the theory, I know Phi; he's
  1588. a friend of mine (in "real life" even, not just on muds).  It turns out
  1589. that Phi has a piece of @i('borgware) that automatically connects a
  1590. process on his computer to the mud (and does other simple things) by
  1591. retrying every 144 seconds after a disconnection due to a server crash
  1592. or a network failure.  In this case, Phi's 'borgware beat Xeglon on by
  1593. 10 seconds---and Xeglon is a Maas-Neotek 'bot, a simpler version of
  1594. Julia.  (Knowing that Xeglon is a 'bot also helps one to interpret "his"
  1595. comment about his least favorite fruit above...@Foot[Lucretia is left as
  1596. an exercise, as is determining how it was that Xeglon put that comment
  1597. there, being a 'bot and all.])
  1598.  
  1599. Only experienced mudders have this large a bag of tricks for instantly
  1600. differentiating humans from machines.  In part, it doesn't matter until
  1601. one is going to invest a lot of energy in communicating with another
  1602. character exactly what that character is.  Once one spends enough time
  1603. talking for the investment to become more than trivial, it is often
  1604. obvious, our unfortunate Barry in the above example notwithstanding.
  1605. Mudders, at least experienced ones, are generally very much at home with
  1606. the blurry boundaries between "real" humans and fake ones, and pay
  1607. little attention to them.
  1608.  
  1609. But what about inexperienced mudders?  For mudders like myself (an AI
  1610. researcher), 'bots and their associated likely behavior patterns are old
  1611. hat.  I tend to expect that random characters on a mud might be 'bots,
  1612. and tend to know how to tell (generally, even the best 'bots or other AI
  1613. programs fall victim to very simple conversational gambits, such as
  1614. topical conversation, slang, or a conversation requiring a complicated
  1615. discourse model such as reference to subjects more than a couple
  1616. exchanges in the past).  Hence, even in an unfamiliar environment as a
  1617. brand-new mudder, even if I had not known that Julia was a 'bot, it
  1618. might have become obvious fairly quickly.
  1619.  
  1620. Mudders who are not themselves computer scientists or even people who
  1621. work much with computers at all (a startlingly large percentage of them,
  1622. perhaps the majority), however, may find themselves in a different
  1623. situation.  Consider the following situation.
  1624.  
  1625. While preparing this paper, I had the great good fortune to be referred
  1626. to a mudder on DruidMUCK@Foot[My thanks to Leira for the referral.] who
  1627. had met Julia only a few days before, and did not yet know that she was
  1628. a 'bot.  The mudder (Lara) gave permission for me to quote her for this
  1629. paper, and even furnished Leira with her home phone number to give to me
  1630. so I could call her for the interview; as it happened, though, the
  1631. interview happened entirely in cyberspace, initially on DruidMUCK and
  1632. later via email (since Lara and I tended not to be connected to
  1633. DruidMUCK at the same time).@Foot[One might consider that even a
  1634. telephone interview is happening "in cyberspace"---where are you when
  1635. you're on the phone?---but most people consider the telephone to be by
  1636. now too prosaic a piece of equipment to qualify for the name.]  Leira
  1637. introduced us by telling her that I was writing a paper about Julia, but
  1638. did not otherwise explain why it was that I might want to interview her.
  1639.  
  1640. Of course, before even meeting Lara, the first thing I did was to ask
  1641. Julia for her opinion:
  1642. @Begin(Verbatim)
  1643. You say, "Julia, describe Lara"
  1644. Julia whispers, "As of 7 days ago, lara's description was: A blonde haired
  1645.  blue eyed boundless bundle of Pure NRG."
  1646. Julia whispers, "I first saw lara logged in 7 days ago"
  1647. Julia whispers, "I once heard lara say, 'talking'"
  1648. @End(Verbatim)
  1649.  
  1650. I could have obtained the description by simply looking at her (were she
  1651. in the same room as I, which at this point she was not), but Julia also
  1652. told me when she first connected:  since Julia scans the wholist at
  1653. regular intervals (a few minutes apart at most), she is an extremely
  1654. reliable resource for this information.
  1655.  
  1656. Now I knew that Lara was certainly a new mudder here, and probably new
  1657. to Julia.  I didn't know if she'd ever mudded elsewhere, or what her
  1658. background might be.  We met at St. Cuthbert Plaza (a busy plaza in
  1659. DruidMUCK), then moved to East Oak Street to talk more privately (I
  1660. didn't want some other player spilling the beans about Julia while we
  1661. were discussing her, and didn't want to have to conduct the entire
  1662. conversation to avoid it).  Leira, who knew what was up, joined us.  The
  1663. following is a heavily edited transcript, omitting the small-talk,
  1664. introductions, and conversational tangents that took place concurrently:
  1665.  
  1666. @Begin(Verbatim)
  1667. You say, "So what are your impressions of Julia?"
  1668. Lara says, "I didn't get to chat with her that long.."
  1669. Lara says, "She really wanted to talk Hockey"
  1670. Lara says, "BIG PENGUIN FAN!"
  1671. You say, "Yeah, she seems kinda hung up on that topic.  Did you get a chance
  1672.  to talk to her about anything else?"
  1673. Lenny . o O ( Where do the Penguins hang out, anyway?  Pittsburgh? )@Foot[This is a thought balloon.]
  1674. Lara says, "I tried to talk to her bout where she was from...she said
  1675.  Boston..I think"
  1676. Lara says, "Yup...Pittsburgh it is"
  1677. Lara thought it was interesting that she didn`t know what the Stanley Cup was.
  1678. You say, "How could a hockey fan not know what the Stanley Cup was?"
  1679. Lenny thought her shirt said something about back-to-back Stanley Cups, but
  1680.  may be remembering incorrectly...
  1681. Lara says, "Every time I tried to get more info. out of her, she would tell me
  1682.  not now...later...well, I was never on for the Later."
  1683. You say, "Hmm."
  1684. Lara was also wondering how such a Hockey fan couldn't know bout the Stanely
  1685.  cup
  1686. Lara says, "Maybe she was just kidding around with me"
  1687. You say, "Well, Julia is kinda peculiar in various ways."
  1688. Lara says, "I figured...I talked with her once and a few days later she asked
  1689.  me if I was a hockey fan...again"
  1690. Lara says, "I told her that she had already asked me that question"
  1691. [ . . . ]
  1692. Lara says, "anything else you wanna know?"
  1693. Lara giggles.
  1694. Lara says, "she is a fine convesationalist...if it is about hockey..4"
  1695. Lara says, "she has been on a long time...and she is seldomly idle"
  1696. Lara says, "I notice that she is almost always on when I jump on."
  1697. @End(Verbatim)
  1698.  
  1699. Later, Lara learned Julia's secret, from inspection and the knowledge
  1700. that such a thing might be possible.  From email we exchanged:
  1701.  
  1702. @Begin(Verbatim)
  1703. Lenny, I had a chance to talk with Julia for about 30 or 40 minutes
  1704. yesterday after you disconnnected.  I noticed her 'secret' after about 5
  1705. or 10 minutes.
  1706.  
  1707. At first, it was fine to chat with her about hockey.  She started to ask
  1708. the same questions after a bit.  This was the tip off.  She started to
  1709. repeat herself on a regular basis.
  1710.  
  1711. It was hard for me to follow her conversation.  I got frustrated with her
  1712. for the first couple of minutes.  When I found out her secret, I started
  1713. to have some fun with her.  I asked her questions that maybe she had no
  1714. knowledge of.  I tried using slang with her, but she didn't understand
  1715. what I was saying and would ask me to refrase the statement.  She is very
  1716. polite. She always says please and thank you.
  1717.  
  1718. I was basically patient with her for the first little bit while when I
  1719. first met her.  She did have a problem with her social skills which I
  1720. tried to be sympathetic to.  I did however, try to avoid her after the
  1721. first couple of encounters when all she did was talk hockey.  Until, I
  1722. talked with you.  *smile*
  1723.  
  1724. I went through a series of questions about her in my mind, before I
  1725. figured it out.  I tried to get her to tell me about school, which she had
  1726. never heard of before. I wanted her to tell me about herself, but she
  1727. wouldn't.  I was trying to "label" her with some sort of disease  like
  1728. Downs Syndrome, which I found out she had none of.
  1729.  
  1730. I am going to give your email address to "Kimber" and have her do this for
  1731. you too.
  1732.  
  1733. I hope this information helps.
  1734.  
  1735. Lara
  1736. @End(Verbatim)
  1737.  
  1738. Note that Julia's singleminded fixation on hockey as a subject (when she
  1739. lacked anything better to say, usually caused by a too "human"
  1740. conversational style from a player that leaves her with a series of
  1741. failed parses) tended to drive Lara away from her.  Here we may have a
  1742. case of excessive Turing-ism leading to a decrease in utility:  Lara
  1743. simply thought that Julia was a boring human, rather than a machine with
  1744. as-yet-undiscovered talents.
  1745.  
  1746. It occurred to me, upon questioning from Leira, that Lara had not
  1747. definitively revealed that her knowledge of Julia's secret matched mine
  1748. (e.g., Lara never came right out and said that Julia was a 'bot).  I
  1749. sent some followup mail, asking for more details, in particular her
  1750. emotional reactions when she figured it out and whether she had indeed
  1751. figured it out or was told by someone else:
  1752.  
  1753. @Begin(Verbatim)
  1754. I believe that Julia`s secret is that she is a robot.  I know a little bit
  1755. about robots talking through computers to humans.  I have a friend who had
  1756. me write him dialogue. =)
  1757.  
  1758. When I found out, I felt sort of funny talking to her.  I felt somewhat
  1759. superior to her.  I know that this sounds strange, but I felt that I could
  1760. offer more to the conversation than she could.  I tested her knowledge on
  1761. many subjects.  It was like I was proving to myself that I was supirior to
  1762. a machine.  I am intimidated by machines because I don't understand them
  1763. and I wanted to make sure that my human knowledge wasn't "lower" than hers.
  1764.  
  1765. It was sort of exciting knowing that I was talking to a machine, though.
  1766. I never thought that the world would come to machines and humans talking
  1767. to each other using language that is common to most people.  It frustrates
  1768. me that her knowledge is so limited.  I am eager to talk with her and want
  1769. to know more about robots and human conversation.  I was a bit
  1770. dissapointed that her vocabulary and subject topics were so limited.  I
  1771. wanted her to tell me more about herself and who and what she is
  1772.  
  1773.  
  1774. emotional response:
  1775.  
  1776. a little bit of fright
  1777. giddiness
  1778. excitement
  1779. curiosity
  1780. pride
  1781. sympathy for her. Before I knew that she was a robot for sure.. I felt
  1782. compasion for her.  I wanted to help her and direct her to answer the
  1783. questions I was asking without causing her too much stress over answering
  1784. my line of questions.
  1785. @End(Verbatim)
  1786.  
  1787. I asked her some more questions, including the question, "An interesting
  1788. conundrum; if her vocabulary and subject topics were less limited, it
  1789. would be harder for you to know you were superior to her, as you put it.
  1790. How would this make you feel?  If she was really good (far beyond
  1791. current state of the art, by the way), you might not ever be able to
  1792. tell.  How would _that_ possibility make you feel?"  She said (answering
  1793. several questions at once, including the ones above):
  1794.  
  1795. @Begin(Verbatim)
  1796. Well, I did figure out that Julia was a 'bot.  I did, however, confirm
  1797. this with someone else who knew her.
  1798.  
  1799. Oh, you asked about my dialouge thing....well, I have a friend who is
  1800. writing a similar program to Julia's type.  I am quite a conversationalist
  1801. and he wanted me to write up some sample dialouges.  That is what I ment.
  1802.  
  1803. If the `bot was more fluent with language and had a vast knowledge of many
  1804. different topics, I am sure that it would be virtually impossible to tell
  1805. the difference between IT and a human being.  HMMMMM...how do I feel about
  1806. this.  Part of me thinks it  is interesting because of the wonders of
  1807. modern technology.  Pretty exciting! But, on the other hand, it takes away
  1808. from HUMANESS!  Sort of fake, or void personality.  I think that I would
  1809. feel .....(this is hard)....let me switch gears...let me just throw out
  1810. some words...
  1811.  
  1812. shallow, void, hollow, superficial, fake, out of control of the situation,
  1813.  
  1814. I don't know if that is what I want to say, but those are some of the
  1815. things that I think that I might feel.  I think I would want to know if
  1816. the person that I am talking to is REAL or not.  If I knew that it were
  1817. just an 'it' I think that I wouldn't try to become it's real friend.  I
  1818. would be cordial and visit, but I know that it cannot become attatched to
  1819. me on a mental basis and it would be wasted energy on my part to try to
  1820. make it feel.  'bots don't feel...in my book anyways.  They can be
  1821. programmed to say the right things or do the right action, but not on a
  1822. spontaneous level.  I want to know that the person on the other end of my
  1823. conversation is really aware of my feelings and what I am going
  1824. through...not through some programmers directions but through empathy.
  1825.  
  1826. I think most of all, while talking to a 'bot, I become very aware of my
  1827. HUMANESS!
  1828. @End(Verbatim)
  1829.  
  1830. She also volunteered some details about her background, to put this all
  1831. in context, when I noted that her comment about being intimidated by
  1832. technology made it unlikely that she was a computer scientist as I was,
  1833. of which the most relevant seemed to be:
  1834.  
  1835. @Begin(Verbatim)
  1836. My intended major is Early Childhood Developement.  I want to be a teacher
  1837. for the 3rd or 4th grade level.  Not many of us on the computer. =)
  1838. [ . . .  ]
  1839. @End(Verbatim)
  1840.  
  1841. We clearly walk a fine line here in making agents that are both useful
  1842. and not too misleading.  (One might argue that simply being social,
  1843. without any ulterior utility, is itself a useful task.  Such an agent
  1844. would be a perfectly reasonable entertainment or companion.  However, I
  1845. will focus here on agents that also claim to have a nonsocial aspect to
  1846. the tasks of which they are capable.)  On the one hand, people can quite
  1847. clearly be led astray.  On the other hand, there is great utility to a
  1848. natural interface in the right environment.  Consider this
  1849. bug-report-of-the-future, from shortly after I met Xeglin on Space
  1850. Madness:
  1851.  
  1852. @Begin(Verbatim)
  1853. >give xeglon=1
  1854. You give a chupchup to Xeglon.
  1855. Xeglon says "Thanks for the donation, Lenny."
  1856.  
  1857. You say "Xeglon, describe Lenny."
  1858. Xeglon whispers " As of 12 minutes ago, your description was: A researcher
  1859.  with long black hair with streaks of grey in it, and a cup of tea surgically
  1860.  attached to one hand."
  1861. Xeglon whispers " I first saw lenny logged in 36 minutes ago"
  1862. Xeglon whispers " I once heard you say, 'xeglon, describe me'"
  1863. Xeglon whispers " lenny last gave me chupchups 13 seconds ago, and has given
  1864.  me a total of 0 chupchups."
  1865.  
  1866. Lenny . o O ( Oh yeah?  Fencepost error! )
  1867.  
  1868. You say "Xeglon, who wrote you?"
  1869. Xeglon says "elthar@Foot[Note that elthar, like many mudders, spells
  1870. his name using lower case, so that is the case I use later.] swiped @~
  1871. Fuzzy's code to build me, Lenny."  
  1872.  
  1873. You say "Oh, you're a modified Maas-Neotek.  I know how to deal with _those_.
  1874.  Xeglon, describe elthar."
  1875. Xeglon whispers " As of 2 weeks ago, elthar's description was: Looming above
  1876.  you stands a nine foot tall Kodiak bear!  His luxurious brown fur is
  1877.  well-groomed and shiny, indicating that he has been eating well, which is
  1878.  just as well for you -- a couple of tons of omnivorous muscle, teeth, and
  1879.  claws is likely to have Whatever He Wants for dinner.  About his neck dangles
  1880.  a tiger's-eye pendant, inset with a yin/yang symbol, on a silver chain.  Oh,
  1881.  and 8-point buck antlers, too, and a neon-flashing glow in the dark diamond
  1882.  tiara, both courtesy raesoe."
  1883. Xeglon whispers " I first saw elthar logged in 9 months ago"
  1884. Xeglon whispers " I once heard elthar say, 'Thanks, D_III'"
  1885. Xeglon whispers " elthar last attacked me 6 months ago"
  1886.  
  1887. You say "Xeglon, tell elthar that you have a fencepost error in you.  I
  1888.  described myself through you, and you said nothing about chupchups.  Then, I
  1889.  gave you one chupchup, and you said that I'd last given you a chupchup n
  1890.  seconds ago, and that I'd given you a total of 0 chupchups.  That's not right
  1891.  (and Julia doesn't have this bug, and I suspect that an unmodified Colin
  1892.  doesn't have it, either)."
  1893. Xeglon says "Right, I'll tell elthar, Lenny."
  1894. You say "Thanks."
  1895. Xeglon says "You're more than welcome, Lenny."
  1896. @End(Verbatim)
  1897.  
  1898. The interactional style is totally natural, crossing boundaries from
  1899. using the agent to perform a task, to noticing a bug, to finding out how
  1900. to report the bug, to reporting it.@Foot[Nowhere but on the Lisp Machine
  1901. have I seen a similar process be quite so easy, and even there the
  1902. interface isn't in natural language.]  I connected to Space Madness the
  1903. next day, and was immediately greeted by Xeglon again:
  1904.  
  1905. @Begin(Verbatim)
  1906. Xeglon whispers " 13 hours ago, elthar said 'Tell Lenny that's not a Xeglon
  1907.  bug per se; it's a problem with his interaction with MUSH.  Since Xeglon is
  1908.  owned by another player, all of his money goes to that player, and Xeglon
  1909.  himself thinks he always has 0 chupchups.  Since the way he tells how much
  1910.  he's been given is by comparing 'before' and 'after', he always thinks he's
  1911.  been given 0 chupchups.  I haven't bothered to fix him, and Xeglon++ will be
  1912.  MUSH-aware'"
  1913. You say "Xeglon, tell elthar:  Oh, now I see.  He doesn't own himself, etc.
  1914.  Tnx."
  1915. Xeglon says "Right, I'll tell elthar, Lenny."
  1916. @End(Verbatim)
  1917.  
  1918. @Heading(What's an agent?)
  1919.  
  1920. So why is Julia such a good example of an agent, and what can we learn
  1921. from her sociology?  In my view, anything that calls itself an "agent"
  1922. has several criteria it must pass, in one way or another, to be
  1923. distinctly an agent and not something else.  Let's tackle them one at a
  1924. time, in outline form.  First, I'll lay down the basic issues, then
  1925. examine them in the light of an example such as Julia.
  1926.  
  1927. @SubHeading(What's an agent?  Crucial notions)
  1928.  
  1929. @Begin(Itemize)
  1930. @b(Autonomy.)  Any agent should have a measure of autonomy from its
  1931. user.  Otherwise, it's just a glorified front-end, irrevocably fixed,
  1932. lock-step, to the actions of its user.  A more autonomous agent can
  1933. pursue agenda independently of its user.  This requires aspects of
  1934. @i(periodic action), @i(spontaneous execution), and @i(initiative), in
  1935. that the agent must be able to take preemptive or independent actions
  1936. that will eventually benefit the user.  
  1937.  
  1938. @b(Personalizability.)  The point of an agent is to enable people to do
  1939. some task better.  Since people don't all do the same tasks, and even
  1940. those who share the same task do it in different ways, an agent must be
  1941. educable in the task and hand and how to do it.  Ideally, there should
  1942. be components of @i(learning) (so the user does not necessarily have to
  1943. program the agent explicitly; certain agents can already learn by
  1944. "looking over the user's shoulder) and @i(memory) (so this education is
  1945. not repeatedly lost).
  1946.  
  1947. @Begin(Multiple)
  1948. @b(Discourse.)  For all but the simplest of tasks, we generally need to
  1949. be assured that the agent shares our agenda and can carry out the task
  1950. the way we want it done.  This generally requires a @i(discourse) with
  1951. the agent, a two-way feedback, in which both parties make their
  1952. intentions and abilities known, and mutually agree on something
  1953. resembling a @i(contract) about what is to be done, and by whom.  This
  1954. discourse may be in the form of a single conversation, or a higher-level
  1955. discourse in which the user and the agent repeatedly interact, but both
  1956. parties remember previous interactions.
  1957.  
  1958. By this metric, for example, a hammer is @i(not) an agent---I don't have
  1959. a discourse with my hammer!  Neither is a Lisp garbage collector, even
  1960. though it takes spontaneous action to keep my computational environment
  1961. clean, nor is an automatic transmission in a car; both are autonomous
  1962. and relatively spontaneous, but it can hardly be said that I have much
  1963. of a discourse with them.
  1964.  
  1965. Booking a flight through a human travel agent, @i(in my case), is only
  1966. partially a discourse:  since I don't have direct access to the actual
  1967. booking computer, I have no other option.  And since I do not have a
  1968. regular travel agent who knows me, every travel agent is a new
  1969. experience (albeit, one that travel agencies try to standardize a bit,
  1970. so as to align everyone's expectations).  Now, in one respect, the
  1971. conversational interchange is a discourse, because, for the duration of
  1972. the task at hand (booking that one flight), there is a two-way
  1973. communication of desires and capabilities.  However, viewed in a larger
  1974. context, there is no discourse that "teaches" the travel agent what my
  1975. preferences are on when I like to travel, on which airline, and so
  1976. forth.  Viewed this way, a "travel agent" is nothing more than a
  1977. somewhat more "user-friendly" interface to the flight reservation data
  1978. system.
  1979. @End(Multiple)
  1980.  
  1981. @b(Risk and trust.)  The idea of an agent is intimately tied up with the
  1982. notion of @i(delegation).  We cannot delegate a task to someone or
  1983. something else if we do not have at least a reasonable assurance that
  1984. the entity to which we delegated can carry out the task @i(we) wanted,
  1985. to @i(our) specifications.  However, by definition, delegation implies
  1986. relinquishing control of a task to an entity with different memories,
  1987. experiences, and possibly agendas.  Thus, by not doing something
  1988. ourselves, we open ourselves up to a certain risk that the agent will do
  1989. something wrong.  This means that we have to balance the @i(risk) that
  1990. the agent will do something wrong with the @i(trust) that it will do it
  1991. right.  This decision must be based on both our internal mental model of
  1992. what the agent will do (hence how much we trust it) and the domain of
  1993. interest (hence how much a mistake will cost us).
  1994.  
  1995. @b(Domain.)  The domain of interest is crucial, as mentioned above when
  1996. talking about risk and trust.  If the domain is a game or a social
  1997. pursuit, most failures of the agent carry relatively low risk, meaning
  1998. that we can afford to invest the agent with a considerable degree of
  1999. trust.  On the other hand, the "fuzziness" and unpredictability of most
  2000. agent-based systems might make one think twice about using such a
  2001. system, say, for the control rod feedback system of a nuclear reactor.
  2002.  
  2003. @b(Graceful degradation.)  Bound up in the notions of risk, trust, and
  2004. domain, agents work best when they exhibit graceful degradation in cases
  2005. of a communications mismatch (the two parties do not necessarily
  2006. communicate well, and may not realize it) or a domain mismatch (one or
  2007. both parties are simply out of their element, and again may not realize
  2008. it).  If most of a task can still be accomplished, instead of failing to
  2009. accomplish @i(any) of the task, this is generally a better outcome, and
  2010. gives the user more trust in the agent's performance.
  2011.  
  2012. @b(Cooperation.)  The user and the agent are essentially
  2013. @i(collaborating) in constructing a contract.  The user is specifying
  2014. what actions should be performed on his or her behalf, and the agent is
  2015. specifying what it can do and providing results.  This is often best
  2016. viewed as a two-way conversation, in which each party may ask questions
  2017. of the other to verify that both sides are in agreement about what is
  2018. going on.  As such, the two parties interact more as peers in
  2019. agent-oriented systems; in non-agent-oriented systems, the user
  2020. typically "commands", through some interface, a particular action, and
  2021. is probably never asked a question about the action unless something
  2022. goes wrong.  In a strictly agent-less situation (e.g., a text editor),
  2023. the feel of the interaction is different than in the case of an agent,
  2024. primarily due to the discourse-oriented nature of the interaction with
  2025. the agent and the more "stimulus-response" or "non-conversational" feel
  2026. of the text editor.
  2027.  
  2028. @b(Anthropomorphism.)  There is a great debate over anthropomorphism in
  2029. user interface design, and agent-oriented systems would find it
  2030. difficult to stay out of the morass.  However, let me make the point
  2031. that there are several extent systems that might fit the "agent" mold
  2032. that are clearly @i(not) anthropomorphic (e.g., mail-sorting programs
  2033. that learn how to sort based on watching the user's actions and making
  2034. inferences), while there are some that clearly @i(are) (e.g., Julia).
  2035. Hence, agency does not necessarily imply a need for anthropomorphism.
  2036. Conversely, just because a program pretends to be anthropomorphic does
  2037. not make it an agent:  ELIZA pretends to be human, but no one could call
  2038. it an agent; it lacks most of the crucial notions above, such as being
  2039. useful for a domain, being personalizable, or having any degree of
  2040. autonomy.
  2041.  
  2042. @b(Expectations.)  Whenever one interacts with some other entity,
  2043. whether that entity is human or cybernetic, the interaction goes better
  2044. if one's expectations match reality.  By the very nature of delegation,
  2045. assuming perfect operation, especially in a changing world where tasks,
  2046. goals, and means may be constantly changing, is likely to lead to
  2047. disappointment.  Agents are most useful in domains in which graceful
  2048. degradation and the correct balance of risk to trust can be obtained,
  2049. and users' expectations are very important in establishing this domain
  2050. and making the agent useful.
  2051. @End(Itemize)
  2052.  
  2053. @SubHeading(What's an agent?  Why Julia wins)
  2054.  
  2055. There is no question in my mind that Julia fits the category of agent.
  2056. To wit:
  2057.  
  2058. @Begin(Itemize)
  2059. @b(Autonomy.)  She carries out many independent actions in the mud.  In
  2060. fact, most of her time is spent pursuing a private agenda (mapping the
  2061. maze), which is nonetheless occasionally useful to her users (when they
  2062. ask for navigational assistance).  Note that this degree of autonomy is
  2063. @i(necessary) for her to perform her job:  it would do no good at all
  2064. for Julia to explicitly attempt to map the maze only when asked for
  2065. directions.  Such an action would take too long for the user to wait,
  2066. and simply cannot be sped up, either, since Julia must pause at least
  2067. momentarily at regular intervals to avoid spamming the server.
  2068.  
  2069. @b(Personalizability.)  Julia is personalizable to the extent that she
  2070. will remember certain preferences about her users.  For example, she can
  2071. be told someone's email address, and will remember that and disgorge it
  2072. again when asked to describe someone.  Most of her aspects of
  2073. personalizabilty are in fact of @i(negative) utility to other players,
  2074. though---except for keeping descriptions of individual players (which
  2075. would qualify her more as a database), her primary bit of
  2076. personalizability is to @i(avoid) players who have killed her recently,
  2077. or have been obnoxious in other ways (c.f. the example above in which
  2078. Johann killed her).
  2079.  
  2080. @Begin(Multiple)
  2081. @b(Risk, trust, and graceful degradation.)  Julia's task is both social
  2082. and informational.  There are several mechanisms by which Julia might
  2083. "fail":
  2084. @Begin(Itemize, Spread 0)
  2085. Not even noticing that she has been addressed
  2086.  
  2087. Misparsing a statement and responding in a totally inappropriate way
  2088.  
  2089. Correctly parsing a statement, but producing incorrect information,
  2090. either accidentally or on purpose
  2091. @End(Itemize)
  2092. Julia quite frequently makes the first two types of mistakes, but such
  2093. mistakes carry with them extremely little risk.  The first type of
  2094. mistake may make her seem cold or uninterested in a player, but
  2095. presumably the player can deal with the affront to his or her ego.  The
  2096. second type of mistake is generally obvious (and often a dead giveaway
  2097. that Julia is a 'bot, for those who don't know yet), since we assume
  2098. that only human players interact with 'bots.  (This assumption is
  2099. generally true, since 'bots rarely speak unless spoken to, which tends
  2100. to leave all of them silent unless humans are around to start a
  2101. conversation.  Obviously, one can see different setups in which 'bots
  2102. would interact, potentially getting stuck in cycles of misparsed and
  2103. responses unless programmed to detect them, and so forth.)
  2104.  
  2105. It is only the third type of error which carries substantial risk, and,
  2106. even here, the risk is not that great.@Foot[_No_ risk in a mud can be
  2107. particularly great these days, since muds do not generally side-effect
  2108. the "real world" in any way---though this may change:  JaysHouseMOO
  2109. (<theory.cs.mankato.msus.edu, port 1709>) is doing considerable work on
  2110. systems that allow MOOers to interact with the information resources of
  2111. the Internet, as are certain other muds).  And even a player who is
  2112. badly lost and steps into the wrong room can usually recover in _some_
  2113. fashion.  The "risks" are greatest in RPG muds, where one might
  2114. potentially lose a character, and here one generally doesn't trust 'bots
  2115. more than one might trust a monster or a stranger.]  In tasks where her
  2116. information's reliability matters (e.g., player descriptions,
  2117. navigation, etc), she has never to my knowledge been observed to be
  2118. incorrect, with the possible exception of being slightly out of date if
  2119. someone changes a description or some bit of topology after she has last
  2120. seen it.  At worst, she may claim that her map does not work, and fail
  2121. to give navigational information at all.
  2122.  
  2123. Julia @i(does) deliberately mislead and provide false information in one
  2124. crucial area---that of whether she is a human or a 'bot.  This
  2125. particular piece of risk is something of a step function:  once one
  2126. realizes the truth, the risk is gone.  While some (like the unfortunate
  2127. Barry in the long transcript above) might argue that this is a serious
  2128. risk, the vast majority of those who meet her and were not clued in
  2129. ahead of time as to her nature do not find the discovery particularly
  2130. distressing.  On the other hand, her very accessibility, because of her
  2131. close approximation of human discourse, makes her much more valuable
  2132. than she might otherwise be---one is tempted to ask her useful questions
  2133. that she @i(might) not be able to answer, just because she deals so well
  2134. with so many other questions.  This encourages experimentation, which
  2135. encourages discovery.  A less human and less flexible interface would
  2136. tend to discourage this, causing people to either have to read
  2137. documentation about her (most wouldn't) or not ask her much.  Either
  2138. way, these outcomes would make her less useful.
  2139. @End(Multiple)
  2140.  
  2141. @b(Discourse.)  Julia's discourse model, while primitive, appears
  2142. sufficient for the domain at hand.  Since the topics at hand don't
  2143. generally require more conversational memory than one or two exchanges,
  2144. the extent of her discourse modelling is limited more by its
  2145. breadth---by the stunningly simple parsing model employed.  (I'll have
  2146. more to say about the demands placed on Julia's handling of discourse
  2147. when I talk about domain immediately below.)
  2148.  
  2149. @b(Domain.)  Julia is situated in a mud, and therefore her environment
  2150. is conceptually rather simple.  Furthermore, she has access to just as
  2151. much sensor data as the human players, putting them on an even footing.
  2152. In fact, much of Julia's success can be traced to the wonderful domain
  2153. in which she finds herself situated.  In this bandwidth-limited space,
  2154. people expect other people to look exactly as Julia does---as a stream
  2155. of text.  And even when they're interacting with an entity known to be a
  2156. program, the text-only nature of the dialog prevents them from
  2157. expecting, say, a pop-up menu.  (If such things were available, people
  2158. could tell programs from people by knowing that programs can pop up
  2159. menus, whereas people use sentences.)  Yet the domain is not @i(so)
  2160. simple as to be uninteresting.  It contains not only a fascinating
  2161. sociological mix of human players, but objects with quite complicated,
  2162. constructed behaviors, which may be manipulated on an even footing by
  2163. both machines and people.
  2164.  
  2165. @b(Anthropomorphism.)  There's no question that Julia as an agent
  2166. depends upon anthropomorphism.  In this domain, though, that is both
  2167. natural and probably necessary.  Nonplayer objects are not generally
  2168. expected to be able to deal with free text, and not being able to use
  2169. free text would require each user of Julia to read documentation about
  2170. reasonable commands they could type and reasonable actions they could
  2171. expect.  Julia would @i(have) to appear at least as animated as, say, a
  2172. more obvious "robot" or a pet, given that she wanders around in the
  2173. maze; she cannot afford to resemble a static piece of furniture and
  2174. still get her job done.  Given an entity that moves of its own volition,
  2175. seems to have an independent agenda most of the time, and both processes
  2176. and emits natural language, if it was @i(not) anthropomorphized, users
  2177. would tend to do so anyway (pets get this treatment, as well as much
  2178. simpler mechanisms).  Thus, anthropomorphizing her makes it easier to
  2179. determine how to relate to her and how to get her to do one's bidding.
  2180.  
  2181. @b(Expectations.)  The domain of a mud is ideal in correctly setting
  2182. expectations about the reliability and power of an agent such as Julia.
  2183. Since the setting is fundamentally playful, and usually also somewhat
  2184. unpredictable, it is natural to interact with playful and unpredictable
  2185. characters (be they machines or humans).  Nothing in a mud is truly
  2186. life-critical, hence the user generally does not have very high
  2187. expectations of reliability, which lets Julia get away with a lot of
  2188. nonoptimal behavior that could never be tolerated in, e.g., an airplane
  2189. cockpit guidance system.
  2190. @End(Itemize)
  2191.  
  2192. @Heading(Conclusion)
  2193.  
  2194. Given the above background and desiderata for what I call an agent, I
  2195. find little justification for most of the commercial offerings that call
  2196. themselves agents.  Most of them tend to excessively anthropomorphize
  2197. the software, and then conclude that it must be an agent because of that
  2198. very anthropomorphization, while simultaneously failing to provide any
  2199. sort of discourse or "social contract" between the user and the agent.
  2200. Most are barely autonomous, unless a regularly-scheduled batch job
  2201. counts.  Many do not degrade gracefully, and therefore do not inspire
  2202. enough trust to justify more than trivial delegation and its
  2203. concomittant risks.@Foot[In "Let Your Agents Do The Walking" (Steven
  2204. Levy, _MacWorld_, May 1993, p. 42), Levy describes using "Magnet" for a
  2205. simple file identification and movement task.  When he specified the
  2206. "wrong" directory in which to put the results (by improperly
  2207. capitalizing it, despite the fact that Macintosh filesystems are
  2208. specified as being case-insensitive for lookup), the "agent" silently
  2209. threw everything it found in the trash!]
  2210.  
  2211. Yet the appeal of a truly intelligent system, a sort of mental slave
  2212. that one doesn't have to feel bad about using as a slave,
  2213. persists.@Foot[Modern industrial society has largely replaced physical
  2214. (human) slavery with machines, be they constructed out of inorganic
  2215. matter or bred as domestic animals.  Mental tasks with a large
  2216. "cognitive" component are the last bastion where human-level performance
  2217. is often needed, but is unobtainable without actual humans to do it.]
  2218. Like artificial intelligence before it, the fairly loose specification
  2219. of the meaning of "agent" and the use of a word with a nontechnical
  2220. meaning in a technical way has blurred the boundaries and made the
  2221. concept available for appropriation.
  2222.  
  2223. It should be clear by now that I consider many of the uses of "agent" to
  2224. be misnomers, either accidentally or in a deliberate attempt to cash in
  2225. on a fad or on ancient dreams of true intelligent assistants.  Yet I
  2226. also argue that even true "agent" systems, such as Julia, deserve
  2227. careful scrutiny.  Systems such as Julia provoke discussion of
  2228. sociological and emotional interactions with computational tools.  This
  2229. implies that explicit attention to how users will perceive such systems
  2230. is warranted, or we may make systems that are not as useful as they
  2231. could be.  Consider that even an agent as arguably useful as Julia is
  2232. went unappreciated by one potential user, Lara, by being good enough at
  2233. Turing-competence that Lara thought Julia was human, but bad enough at
  2234. being a conversationalist that Lara thought she was simply a boring
  2235. human fixated on hockey.  As more human interaction moves into
  2236. essentially cyberspace-like realms, and as the boundaries between human
  2237. and machine behavior become blurrier, more and more programs will have
  2238. to be held up to scrutiny.  There may come a time when one's programs
  2239. may well be subjected to the same sort of behavioral analysis that one
  2240. might expect applied to a human:  Is this program behaving appropriately
  2241. in its social context?  Is it causing emotional distress to those it
  2242. interacts with?  Is it being a "good citizen"?
  2243.  
  2244. I believe that Julia and her domain of muds are both important early
  2245. examples of where human/computer interaction may be leading, and that
  2246. they hint at both the problems and the opportunities wating farther
  2247. down the path.  But getting there with the fewest number of false steps
  2248. will take careful observation and analysis of how people interact with
  2249. such programs, and with environments such as muds that so closely
  2250. situate people and programs to the extent that their boundaries are
  2251. perceptibly blurred.  It will also take due diligence to avoid polluting
  2252. and diluting the concepts required to talk about such systems, lest we
  2253. see the same hype, crash, and burn phenomenon that happened with
  2254. artificial intelligence happen once again.
  2255.